创建PrinterWriter
对象时:
PrintWriter outputFile = new PrintWriter(*FileName*);
编译器何时查找FileName?例如,在Eclipse中,我在Arrays / src / ArraysAndFiles.java中工作。在这个例子中,我试图打开Values.txt。我在src目录中创建了这个文件,因为这是存储ArraysAndFiles.java的地方。当我尝试在以下代码中打开文件时,我得到一个FileNotFoundException
:
import java.io.PrintWriter;
public class ArraysAndFiles {
public static void main(String[] args) {
// TODO Auto-generated method stub
PrintWriter outputFile = new PrintWriter("Values.txt");
}
}
Values.txt的正确途径是什么?
解决方案#1(建议用于小文件,但您也可以在其他计算机上找到该文件):How do I load a file from resource folder?
解决方案#2:使用File(String parent, String child)
构造函数逐步构建路径。例:
File desktop = new File(System.getProperty("user.home"),"Desktop");
File textsFolder = new File(desktop,"texts");
File testsFolder = new File(textsFolder,"tests");
File peopleTxt = new File(testsFolder,"people,txt");
这等于:C://Users//George//Desktop//texts//tests//people.txt(Windows操作系统)。
按照代码,
PrintWriter outputFile = new PrintWriter("Values.txt");
如果你将你的Values.txt
放在当前/项目目录中,即在Arrays
文件夹中,它应该可以工作但是有上述注释中提到的限制,比如写入文件是JarFile的一部分。
根据您的目的,您应该采取行动。
在您的示例中,“Values.txt”是相对路径。它与您的工作目录有关。 通常它与JAR文件所在的目录相同。
在Eclipse中,应用程序构建在“bin”文件夹中。在你的情况下,它是Arrays\bin\
。所以这是应用程序的工作目录,你的文件必须在那里。
如果希望Eclipse在构建过程中导出此文件,请执行以下操作:
右键单击文件 - >构建路径 - >添加到构建路径