如何在相对路径的eclipse中读取和打印文件?

时间:2011-09-05 16:37:57

标签: java eclipse file relative-path

我正在尝试在eclipse中读取文件并将其打印出来。问题是编译器总是告诉我文件或目录不存在。我必须使用相对路径。

项目路线的相关部分是:

  • uva.pfc.refactoringEngine.core< - 项目
    • ...
    • SRC
      • uva.pfc.refactoringengine.core.actions< - 实际包裹
        • ...
        • CreateEnumSetPlusClas.java< - 我想要读取EnumSetPlus.java文件的文件
      • ...
      • EnumSetPlus.java< - 我想要阅读和打印的文件

这是代码:

String total="";

File actual = new File("src/EnumSetPlus.java"); 

FileReader filereader = null; 

try { 
filereader = new FileReader(actual); 
} 
catch (FileNotFoundException e) { 
// TODO Auto-generated catch block e.printStackTrace(); 
} 

BufferedReader input = new BufferedReader(filereader); 

try { 
while ((line = input.readLine()) != null) 
{ 
total += line + "\n"; 
} 
input.close(); 
} 
catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace(); 
} 

System.out.println(total);

我认为问题是如果我想要de eclipse项目识别的文件路径,我必须做点什么。

你能帮帮我吗?

事先知道。

4 个答案:

答案 0 :(得分:3)

我使用getClass().getResourceAsStream("/EnumSetPlus.txt") - 这将在类路径的根目录(bin/上查找文件,但是来自src的所有文件都转到bin)。然后,您可以通过InputStream

获得Redaer new InputStreamReader(stream, encoding)

答案 1 :(得分:1)

在Eclipse中,默认情况下当前工作目录为src

试试这个

File actual = new File("EnumSetPlus.txt"); 

我也会研究凯文的答案。 : - )

答案 2 :(得分:1)

尝试:

String filePath = "/EnumSetPlus.java";
File actual = new File(ClassLoader.getSystemResource(filePath).getFile()); 

答案 3 :(得分:0)

您的示例说您要读取名为 EnumSetPlus.java 的文件,但源代码正在查找名为 EnumSetPlus.txt 的文件。