私は現在、テキストファイルを使用するユーザー名とパスワードシステムを持つプロジェクトを作っています。私のプロジェクトを整理しておくために、彼らは同じnetbeansフォルダの中にいます。ただし、そこにあるファイルはsrc\classes\prototype1\textFiles
ですが、ユーザーを追加すると編集中のファイルはbuild\classes\prototype1\textFiles
になります。これが原因で発生する問題は、netbeansを再起動するたびに、build
フォルダの編集済みデータではなく、src
フォルダにある元のデータだけになります。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