我正在学习Java文件I / O。当我刚从https://www.tutorialspoint.com/java/java_files_io.htm复制代码时 然后我也创建一个“ input.txt”,并将其存储在与Java文件相同的目录中。 位置如下:
Java文件:D:\ workspace \ Hello \ src \ io \ Letter.java
文本文件:D:\ workspace \ Hello \ src \ io
我收到错误FileNotFoundException。 然后我还是尝试放置文本文件,然后尝试运行代码,但是它不起作用。
我尝试过搜索。 这与我的情况相同,但解决方法不同。 https://www.eclipse.org/forums/index.php/t/55306/
然后在使用整个目录时解决此问题。
//Before
package io;
import java.io.*;
public class Letter {
public static void main(String args[]) throws Exception {
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream("input.txt");
out = new FileOutputStream("output.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
}finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}
//After
package io;
import java.io.*;
public class Letter {
public static void main(String args[]) throws Exception {
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream("D:\\workspace\\Hello\\src\\io\\input.txt");
out = new FileOutputStream("D:\\workspace\\Hello\\src\\io\\output.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
}finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}}}
//Finally the answer is putting the whole directory. Why doing this works?
答案 0 :(得分:0)
当您指定
in = new FileInputStream("input.txt");
out = new FileOutputStream("output.txt");
您引用了JVM运行的目录,因此您要打开的文件位于JVMDirectory / input.txt
这是使用相对文件路径时的常规行为。
在这里您可以获得有关该主题的更多信息: https://docs.oracle.com/javase/tutorial/essential/io/path.html
编辑: 如果您将IDE与内置JRE一起使用,则相对路径指向的路径就是您的项目目录。