我目前正在制作一个项目,它有一个使用文本文件的用户名和密码系统。要尝试保持我的项目组织,它们位于相同的netbeans文件夹中。但是,这些文件在src\classes\prototype1\textFiles
之下,但添加用户时正在编辑的文件在build\classes\prototype1\textFiles
之下。造成这个问题的原因是,无论何时重新启动netbeans,它只会关闭我在src
文件夹中的原始数据,而不会从build
文件夹中编辑的数据。编辑Java源文件
我使用的代码是:
try {
File f = new File(getClass().getResource("textFiles\\PasswordScreen.txt").toURI());
f.setWritable(true);
FileWriter w = new FileWriter(f);
BufferedWriter writer = new BufferedWriter(w);
wipeFile(f);
for (int i = 0; i <= length; i++){
writer.write(user[i].getUsername());
writer.newLine();
writer.write(user[i].getPassword());
writer.newLine();
writer.write(Integer.toString(user[i].getState()));
writer.newLine();
writer.write("-");
writer.newLine();
}
writer.close();
f.setReadOnly();
} catch(Exception e){System.out.println("error writing to file");}
'src /'下的任何东西都是纯粹要编译的Java代码。你不应该放置任何资源文件。 –
为什么在'build'文件夹中编辑文件?一旦将代码部署到.jar文件中,该文件甚至不会成为硬盘上的文件。您编辑的任何文件都必须在应用程序代码层次结构的外部。 – Andreas
资源应被视为只读。应用程序通常以.jar文件形式提供,在这种情况下,您将无法写入资源,因为它不会是单独的文件。 (另外,'getResource'在所有平台上都使用正斜杠('/')作为文件分隔符;参数本质上是一个相对URL。) – VGR