:ユーザー入力を使用して区切られたテキストファイルから特定の行を削除します。これは私の現在のコードです(Java)の
import java.util.*;
import java.io.*;
public class Adding_Deleting_Car extends Admin_Menu {
public void delCar() throws IOException{
Scanner in = new Scanner(System.in);
File inputFile = new File("inventory.txt");
File tempFile = new File("myTemp.txt");
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
String currentLine;
String lineToRemove;
System.out.println("Enter the VIN of the car you wish to delete/update: ");
lineToRemove = in.next();
while((currentLine = reader.readLine()) != null) {
String trimmedLine = currentLine.trim();
if(trimmedLine.equals(lineToRemove)) continue;
System.out.println(trimmedLine);
writer.write((currentLine) + System.getProperty("line.separator"));
}
writer.close();
reader.close();
boolean successful = tempFile.renameTo(inputFile);
System.out.println(successful);
}
}
私は、ユーザー入力に基づいてファイルからテキストの特定の行を削除したいと思います。例えば、これは私のテキストファイルです:
AB234KXAZ;Honda;Accord;1999;10000;3000;G
AB234KL34;Honda;Civic;2009;15000;4000;R
CD555SA72;Toyota;Camry;2010;11000;7000;S
FF2HHKL94;BMW;535i;2011;12000;9000;W
XX55JKA31;Ford;F150;2015;50000;5000;B
私は入力に自分の好きな文字列をユーザーが希望します、これはfになります列の最初のフィールド(例: XX55JKA31)、その行をファイルから削除します。私はいくつかのコードをオンラインで見つけましたが、私はそれをうまく使うことができませんでした。
私の現在のコードは、一時的なテキストファイルのすべてを書き換えているようですが、削除はしません。
"私の現在のコードは、一時的なテキストファイルのすべてを書き換えるだけですが、削除しません。"では、この行は 'tempFile.renameTo(inputFile)'を何としていますか? –
@Patrick Parkerそれは偽を返しますが、私はコードを他のところで手に入れたので、私は何を期待するべきかについてはあまり確信していませんでした。一時ファイルは、私が望む行を削除せずに元のファイルを再作成するだけです。 –
Windows上で[信頼できるFile.renameTo()代替]の可能な複製?](http://stackoverflow.com/questions/1000183/reliable-file-renameto-alternative-on-windows) –