次のコードを使用して、単純なテキスト ファイルに文字列を書き込みます。
編集:
private String fileLocation="/mnt/sdcard/out.txt";
public void saveHisToFile()
{
if (prefs.getBoolean("saveHis", true) && mWordHis != null && mWordHis.size() >= 1)
{
StringBuilder sbHis = new StringBuilder();
Set<String> wordSet= new HashSet<String>(mWordHis);
for (String item : wordSet)
{
sbHis.append(item);
sbHis.append("\n");
}
String strHis = sbHis.substring(0, sbHis.length()-1);
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(new File(
fileLocation), true));
bw.write(strHis);
bw.newLine();
bw.close();
} catch (IOException e) {
}
}
}
文字列はテキスト ファイルに正常に書き込まれますが、奇妙なことに、次のような一部の文字列が上書きされます。
apple
orange
grapes
grapes
grapes
apple
kiwi
私の質問は:
- 文字列が複数回書き込まれるのを止めるにはどうすればよいですか?
- 文字列 (行) がファイルに既に存在する場合、ファイルへの書き込みを停止するにはどうすればよいですか?
この投稿を参照しましたが、自分のケースには適用できませんでした。少し手伝ってくれませんか?よろしくお願いします。