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

时间:2018-06-13 16:35:18

标签: java filenotfoundexception

我试图在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究竟在哪里寻找这个文件? 提前谢谢..

2 个答案:

答案 0 :(得分:1)

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

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

相对版本:

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

由OS专门化的Java File对象以平台相关的形式转换此通用路径。

路径相对于执行路径,Eclipse的作用很小:您可以在“运行/调试”对话框中给出执行的根路径。

答案 1 :(得分:1)

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

可能输出你不期望的东西。

如果你发布了返回的内容,我可以告诉你你的问题是什么。

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

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")

因为这将如上所述起作用。