在 Java 中使用文件分隔符读取文件



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

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

我正在尝试在日食中运行它。 但是我越来越FileNotFoundExcption.现在我的test.txt与我的源文件位于同一位置。请谁能指导我完成它。eclipse 究竟在哪里尝试查找此文件? 提前谢谢..

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

可能会输出一些你意想不到的东西。

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

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

如何在 Java 中定位当前项目的路径,Eclipse?


溶液:

如果窗口上的路径为:

C:comtest.txt

但是在 Linux 上,您希望:

/com/test.txt

您想使用:

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

因为这将如上所述发挥作用。

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

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

相对版本:

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

由操作系统专用的 Java File 对象将此通用路径转换为依赖于平台的形式。

路径是相对于执行路径的,Eclipse 有一个小角色:您可以在"运行/调试"对话框中给出执行的根路径。

最新更新