我成功地使用 PrintWriter 将字符串写入文本文件,并且默认情况下输出文本文件被写入我正在处理的 Eclipse 项目的目录中。
但我的 Eclipse 项目有一个名为 Resources 的特定文件夹,我希望将文本文件写入其中:
我的代码是:
protected void saveCommandsToFile() throws FileNotFoundException, IOException {
PrintWriter out = new PrintWriter("commands.txt");
int listsize = list.getModel().getSize();
for (int i=0; i<listsize; i++){
Object item = list.getModel().getElementAt(i);
String command = (String)item;
System.out.println(command); //use console output for comparison
out.println(command);
}
out.close();
}
如果我将该行更改为:
PrintWriter out = new PrintWriter("/Resources/commands.txt");
正在抛出 FileNotFoundException。我该如何解决这个问题?谢谢你!
A PrintWriter
以这种方式创建的将需要一个路径,可以是相对路径,也可以是绝对路径。
相对路径是相对于工作目录的。
另一方面,绝对路径需要包含根目录(或目录,如果发生的话)的完整路径,因此在 Windows 机器上,它会是这样的c:/foo/bar.txt
, 在 Unix 类型系统上/home/nobody/foo/bar.txt
.
绝对路径和相对路径的确切规则可以找到here http://docs.oracle.com/javase/7/docs/api/java/io/File.html.
关于相对路径的使用的注释。当您依赖它们时要小心,因为您无法知道您的工作目录是什么:当您从 Eclipse 运行应用程序时,它将默认为您的项目目录,但如果您将其打包并从命令运行线,它将在其他地方。
即使您只从 Eclipse 运行它,在项目文件夹中写入也不是最好的主意。不仅有可能不小心覆盖你的源代码,而且你的代码不太可移植,如果稍后你决定将所有内容打包到 jar 文件中,你会发现你将无法找到这些目录不再有(因为它们都被打包了)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)