удаление строк из файла - PullRequest
       48

удаление строк из файла

0 голосов
/ 29 ноября 2010

У меня есть следующий код, но он не работает .. у кого-нибудь есть идеи, почему?в основном я создаю новый файл, содержащий все строки, кроме тех, которые содержат две строки, которые я пытаюсь удалить, но код, похоже, не работает.

public void removelines(String name, String email){
try{
    //Create objects for our file and the temp file.
    File f = new File("addy");
    File temp = new File(f.getAbsolutePath()+ "temp");
    //Our readers.
    BufferedReader buf = new BufferedReader(new FileReader("addy"));
    PrintWriter print = new PrintWriter(new FileWriter(temp));

    String line = null;

    while ((line = buf.readLine())  != null) {
        //put all data not equal to that to be removed into the new file.
            if(!line.trim().equals(name) || !line.trim().equals(email)){
                print.println(line);
                print.flush();
            }
            }
        print.close();
        buf.close();
        f.delete();
        temp.renameTo(f);
    } catch (Exception e){
        JOptionPane.showMessageDialog(null, "ERROR:" + e );
    }
}

Ответы [ 3 ]

2 голосов
/ 29 ноября 2010

Ваш ||должен быть &&.

т.е.

!line.trim().equals(name) && !line.trim().equals(email)

В противном случае, если строка не равна ни имени, ни электронной почте, она будет записана.

1 голос
/ 29 ноября 2010

Это всегда будет правдой: "Имя"! = "Имя" || "" Email "! =" Имя "

if(! (line.trim().equals(name) || line.trim().equals(email)) ){
}
0 голосов
/ 29 ноября 2010

Остальные постеры верны.Вы, вероятно, должны прочитать это .

...