编辑Java源文件

时间:2016-08-30 21:25:01

标签: java

我目前正在制作一个项目,它有一个使用文本文件的用户名和密码系统。为了尝试保持我的项目有条理,它们位于同一个netbeans文件夹中。但是,其中的文件位于src\classes\prototype1\textFiles下,但添加用户时正在编辑的文件位于build\classes\prototype1\textFiles下。这导致的问题是,每当我重新启动netbeans时,它只会关闭我在src文件夹中的原始数据,而不是build文件夹中编辑的数据。

我使用的代码是:

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");}

1 个答案:

答案 0 :(得分:1)

这是效果的混合。

您要寻址的文件位于classes文件夹中:此文件夹是编译器的输出文件夹。因此,它包含每个定义的易失性内容,因为内容是从src文件夹创建的。

启动IDE(本例中为NetBeans)时,它将清理项目并重建类,覆盖以前编辑过的用户设置。

解决方案很简单:不要将编辑过的文件写入classes文件夹。使用其他位置,例如当前目录。这通常是IDE启动的项目根目录,可以正确控制。

您可能希望将文件的位置配置在某处(命令行,环境变量......)。