私のプロジェクト構造は次のようになります: /src/main/java Main.java /src/main/resources data.txt
今、Main.java には次のようなものがあります。
ClassLoader classLoader = new TestMain().getClass().getClassLoader();
String url = classLoader.getResource("data.txt").toString();
File file =new File(url.split(":")[1]);
//check if file exists, and reads current content:
System.out.println("File exists: " + file.exists());
System.out.println(IOUtils.toString(new FileInputStream(file)));
//Now write some more data to this file:
FileWriter fileWritter = new FileWriter(file,true);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write("some more text");
bufferWritter.close();
これで、上記は正常に実行されます...そして、各反復でファイルを読み取ると、実際には余分なテキストがファイルに追加されていることがわかります。
ただし、/src/main/resource 内のファイルを見ると、変更が見られません。さらに、このファイルを変更/更新すると、以前のすべての変更が削除されます。
したがって、私の質問は次のとおりです。data.txt などのクラスパスに保存したいファイルがあり、ファイルに継続的な変更を加えたい場合、コードベースを整理してこれを行うにはどうすればよいですか?および/またはこれを達成するためにコードにどのような変更を加える必要がありますか?