尝试读取文件到字节数组时出现java FileUtils.readFileToByteArray异常

mccptt67  于 2023-02-02  发布在  Java
关注(0)|答案(3)|浏览(309)

我的文本文件mombirthday.txt与src文件位于同一个eclipse目录中。
但抛出异常(文件不存在)。
我尝试使用文件的限定路径,但抛出了另一个异常。
我发现了无数的例子,但我不确定文件应该位于何处,以及如何正确引用文件的路径
我的项目名为ReadFile,源代码和文本文件都在src目录中

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;

public class ReadFile {
  public static void main(String[] args){
    try{
    //File 'mombirthday.txt' does not exist
   //byte[] bytesInput = FileUtils.readFileToByteArray(new File("mombirthday.txt"));

   //File 'mombirthday.txt' does not exist
 byte[] bytesInput = FileUtils.readFileToByteArray(new File("/ReadFile/src/mombirthday.txt"));**

  }catch(IOException e){
   System.out.println(e.getMessage());
  }
 }
}
lx0bsm1f

lx0bsm1f1#

您为库调用给予的路径不知道或不关心您的项目设置。
因此,您现在所拥有的指向文件系统的根目录,对于初学者,您可以更改为绝对路径。

dgenwo3n

dgenwo3n2#

最好不要使用绝对路径,而是将一个文件放在类路径上,然后使用类加载器定位它:

InputStream fileIS = getClass().getClassLoader().getResourceAsStream("mombirthday.txt");
StringWriter writer = new StringWriter();
IOUtils.copy(fileIS, writer, encoding);
String text = writer.toString();
0ejtzxu1

0ejtzxu13#

public static void readFile(){
    try {
        // byte[] bytesInput = FileUtils.readFileToByteArray(new File("C:/Users/mavensi/Desktop/catalina_14.log"));
        byte[] bytesInput = IoUtils.readBytes(new File("C:/Users/mavensi/Desktop/catalina_14.log"));
        System.err.println(bytesInput.length);
    }catch(IOException e){
        System.out.println(e.getMessage());
    }
}

相关问题