この問題は私が持っている、私は1つの石で2つの鳥をヒットしたいと思います。FileWriterを使用して自分の.CSVファイル内に重複が存在しないようにしながら、ユーザー入力を新しい行に追加する方法はありますか?
私は現在、テキストフィールド内のユーザー入力を既存の.CSVファイルに出力しようとしています。既存の.CSVファイルには既にデータが格納されています。私の最初の問題は、新しい行に追加することができないことに起因しています。私のコードは現在、.CSVファイルの最後の項目に追加されているため、新しい行ではなく、さらに長い行が作成されます。
次に、ユーザー入力の可能な重複について、.CSVを確認したいと思います。ユーザーがリストにバナナを追加し、.CSVファイルでコードをチェックし、ファイル内でバナナを見つけたら、エラーをスローしてユーザーに警告することができます。ここで
は試してみて、新しい行に追加しようとする現在、私のコードですが、何とかそれだけで動作していないです:String fileName = "temp.csv";
try {
FileWriter fileWriter =
new FileWriter(fileName, true);
BufferedWriter bufferedWriter =
new BufferedWriter(fileWriter);
bufferedWriter.write("\n" + fruitNameField.getText());
bufferedWriter.write(',');
bufferedWriter.write(quantityOfFruitField.getText());
bufferedWriter.write(',');
bufferedWriter.write(fruitLocationField.getText());
//bufferedWriter.write(',');
bufferedWriter.close();
}
catch(IOException ex)
{
System.out.println("Error writing to file" + fileName + "'");
}
私は3種類のユーザ入力を望んでいますし、新しい行に追加しますが、上記のコードは次のように出力されます:Banana、2、storeOrange、3、store。新しい行コマンドを無視しているようです。
私の2番目の問題は、重複をチェックしています。私の人生にとって、私はjavaを使ってテキストファイル内の重複をチェックすることに関連するリソースを見つけることができません。
この質問は、主に新しい行に追加するためのものですが、私がこれに関する助けを得ることができれば、それは素晴らしいことでしょう。
私の知る限り、重複をチェックするために、テキストファイルをインポートして配列に書き込む必要がありますが、大きなファイルの場合はどうすればよいでしょうか?
ファイルが配列になったら、ユーザー入力が配列内のテキストと等しいかどうかを確認し、そうであればエラーをスローします。これが私のアプローチです。何らかの形で改善できるかどうか教えてください。
ご協力いただきありがとうございました。
BufferedWriterの改行()メソッドを有します。 –
ありがとう、それは私の問題の半分を解決! – juiceb0xk