【发布时间】:2017-07-28 23:23:18
【问题描述】:
我现在正试图掌握流和套接字,所以我想做的早期测试只是从普通 txt 文件中读取行。
我先是通过IntelliJ IDE设置的,代码如下,
package NixWichtiges;
import java.io.*;
/**
* Created by Wolfone on 08.03.2017.
*/
public class StreamReadTest {
public static void main(String[] args) {
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new FileReader(new File("test.txt")));
String message;
while ((message = bufferedReader.readLine()) != null){
System.out.println(message);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
test.txt 位于 StreamReadTest.java 所在的同一文件夹中,我检查它是否包含在通过执行 run 创建的编译输出的相应路径中IntelliJ。但我不断收到FileNotFoundException。
当我通过命令行编译和执行在我的另一台计算机上尝试它时,它工作得很好(使用此测试的默认包),这让我更加困惑。
有人能解释一下出了什么问题吗?
提前感谢您对此的任何意见。
最好的祝愿 狼王
【问题讨论】:
-
除非您使用特定路径,否则上下文中的文件必须位于调用 JVM 的路径中。
-
idea 从项目根目录运行项目,所以在您的情况下,您应该将
new File("test.txt")更改为new File("src/main/java/NixWichtiges/test.txt")或将文件放到项目根目录 -
啊,好吧,我以为它会像 Reddy 这样的东西,但我没有想到这个想法可能会从与我使用的包含 main 的类不同的位置运行整个东西,所以感谢斯拉瓦对此的回答。解决了我的问题:)
标签: java file intellij-idea inputstream