Java fileinputstream 没有那个文件或目录
Java fileinputstream No such file or directory
我正在尝试学习如何从文本文件中逐行读取。即使我将 txt 文件放在同一个 src 中,控制台始终将错误显示为 - No such file or directory
.
public class ddd {
public static void main(String[] args) {
FileInputStream fis = null;
BufferedReader reader = null;
try {
fis = new FileInputStream("/dd/src/com/dd/input.txt");
reader = new BufferedReader(new InputStreamReader(fis));
System.out
.println("Reading File line by line using BufferedReader");
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
try {
reader.close();
fis.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
}
问题大概出在这里:
"/dd/src/com/dd/input.txt"
至少在 Linux 上,这将是 绝对 路径。您可能想要的是相对于项目根目录的路径:
"src/com/dd/input.txt"
或者,如果您将此文件打包到您的程序中,请使用资源流而不是原始 FileInputStream
:
InputStream is = ddd.class.getResourceAsStream("input.txt");
您需要使用相对路径,例如"src/com/dd/input.txt"
。我试过了,效果很好。
Output
Reading File line by line using BufferedReader
hhhh
我的 input.txt
有 hhhh 内容。
我正在尝试学习如何从文本文件中逐行读取。即使我将 txt 文件放在同一个 src 中,控制台始终将错误显示为 - No such file or directory
.
public class ddd {
public static void main(String[] args) {
FileInputStream fis = null;
BufferedReader reader = null;
try {
fis = new FileInputStream("/dd/src/com/dd/input.txt");
reader = new BufferedReader(new InputStreamReader(fis));
System.out
.println("Reading File line by line using BufferedReader");
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
try {
reader.close();
fis.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
}
问题大概出在这里:
"/dd/src/com/dd/input.txt"
至少在 Linux 上,这将是 绝对 路径。您可能想要的是相对于项目根目录的路径:
"src/com/dd/input.txt"
或者,如果您将此文件打包到您的程序中,请使用资源流而不是原始 FileInputStream
:
InputStream is = ddd.class.getResourceAsStream("input.txt");
您需要使用相对路径,例如"src/com/dd/input.txt"
。我试过了,效果很好。
Output
Reading File line by line using BufferedReader
hhhh
我的 input.txt
有 hhhh 内容。