【问题标题】:How can I read and print a file in eclipse with relative paths?如何在 Eclipse 中使用相对路径读取和打印文件?
【发布时间】:2011-09-05 16:37:57
【问题描述】:

我正在尝试在 Eclipse 中读取文件并打印它。问题是编译器总是对我说文件或目录不存在。我必须使用相对路径。

项目路线的相关部分是:

  • uva.pfc.refactoringEngine.core
  • ...
    • uva.pfc.refactoringengine.core.actions
    • ...
    • CreateEnumSetPlusClas.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项目识别的文件路径,我必须做一些事情。

你能帮帮我吗?

事先谢谢。

【问题讨论】:

标签: java eclipse file relative-path


【解决方案1】:

我会使用getClass().getResourceAsStream("/EnumSetPlus.txt") - 这将在类路径的根目录中查找文件(即bin/,但来自 src 的所有文件都进入 bin)。然后你会得到一个InputStream,你可以通过new InputStreamReader(stream, encoding)适应Redaer

【讨论】:

  • getResourceAsStream 返回 null 然后抛出错误:(
  • 检查文件是否确实存在(在 bin 中)
  • getResourceAsStream 应该可以工作。你确定你没有忘记正斜杠吗?
  • sorry,你是对的!,我之前在bin目录下看到过EnumSetPlus.class文件。我虽然是 .java,但它是 .class。
  • 我已将 EnumSetPlus.java 文件复制到 bin 目录中,并且...一切正常!谢谢!!!
【解决方案2】:

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

试试这个

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

我也想看看凯文的回答。 :-)

【讨论】:

    【解决方案3】:

    试试:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2013-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-30
        • 2019-05-16
        • 2013-11-21
        • 2010-10-01
        相关资源
        最近更新 更多