0

ユーザーが入力したときにテキストファイルから単語を削除するコードを書いていますが、スキャナー部分が機能しないようです

public static void Option2Method() throws IOException 
{

File inputFile = new File("wordlist.txt");
File tempFile = new File("TempWordlist.txt");
String lineToRemove = JOptionPane.showInputDialog(null, "Enter a word to remove");
Scanner reader =  new Scanner(inputFile); 
Scanner writer =new Scanner(tempFile);
String currentLine;

while((currentLine = reader.nextLine()) != null)
{
String trimmedLine = currentLine.trim();
if(trimmedLine.equals(lineToRemove)) continue;
writer.print(currentLine + "\n");
}
reader.close();
writer.close();
inputFile.delete();
tempFile.renameTo(inputFile);
}
4

2 に答える 2

1

Scannerファイルを書き込むためのものではないため、write()メソッドはありません。代わりに使用できますBufferedWriter

例:

public static void Option2Method() throws IOException {

    File inputFile = new File("wordlist.txt");
    FileWriter fstream = new FileWriter("TempWordlist.txt", true);
    BufferedWriter writer = new BufferedWriter(fstream);

    File tempFile = new File("TempWordlist.txt");
    String lineToRemove = JOptionPane.showInputDialog(null, "Enter a word to remove");
    Scanner reader = new Scanner(inputFile);

    while (reader.hasNextLine()) {
        String trimmedLine = reader.nextLine().trim();
        if (trimmedLine.equals(lineToRemove))
            continue;

        writer.write(trimmedLine + "\n");
    }

    reader.close();
    writer.close();
    inputFile.delete();
    tempFile.renameTo(inputFile);
}

使用PrintWriter:

    File inputFile = new File("wordlist.txt");
    PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("TempWordlist.txt", true)));

    File tempFile = new File("TempWordlist.txt");
    String lineToRemove = JOptionPane.showInputDialog(null, "Enter a word to remove");
    Scanner reader = new Scanner(inputFile);

    while (reader.hasNextLine()) {
        String trimmedLine = reader.nextLine().trim();
        if (trimmedLine.equals(lineToRemove))
            continue;

        writer.print(trimmedLine + "\n");
    }

    reader.close();
    writer.close();
    inputFile.delete();
    tempFile.renameTo(inputFile);
于 2013-04-07T11:02:48.613 に答える
0

Scannerメソッドがありませんprint。ファイルをスキャンし、そこからデータを読み取るために使用されます。

ファイルに書き込みたい場合は、これまたはあれを使用するか、単に「 java write to file」をグーグルで検索します

于 2013-04-07T10:53:00.503 に答える