使用 java 中的文件分隔符读取文件

reading a file using File separator in java

我正在尝试读取 java 中的文件内容,但我需要使其独立于平台。所以,我做了

FileInputStream fis = new FileInputStream(new File(File.separator + "com" + File.separator + "test.txt"));
BufferedReader  br = new BufferedReader(new InputStreamReader(fis));

我正在尝试 运行 在 eclipse 中。 但是我得到 FileNotFoundExcption。现在我的 test.txt 和我的源文件在同一个位置。请任何人都可以指导我完成它。 eclipse 到底在哪里试图寻找这个文件? 提前致谢..

绝对版本,可能不是你想要的:

BufferedReader br = new BufferedReader( new FileReader( "/com/test.txt" ));

相对版本:

BufferedReader br = new BufferedReader( new FileReader( "com/test.txt" ));

Java 文件对象,由 OS 专门化,将此通用路径转换为平台相关形式。

路径是相对于执行路径,Eclipse有一个小作用:你可以在Run/Debug对话框中给出执行的根路径。

File a = new File(File.separator + "com" + File.separator + "test.txt");
System.out.println(a.getAbsolutePath());

可能会输出一些你没有预料到的东西。

如果你post那是什么returns,我可以告诉你你的问题是什么was/is。

它可能使用项目目录,您可以使用以下方式输出:

how to Locate the path of the Current project in Java, Eclipse?


解法:

如果windows上的路径是:

C:\com\test.txt

但是在 linux 你想要:

/com/test.txt

您想使用:

new File(System.getenv("SystemDrive") + File.separator + "com" + File.separator + "test.txt")

因为这会像上面描述的那样起作用。