我试图在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究竟在哪里寻找这个文件?
提前谢谢..
答案 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")
因为这将如上所述起作用。