Question

J'ai le code suivant, mais il ne semble pas fonctionner .. quelqu'un a des idées pourquoi? essentiellement je crée un nouveau fichier contenant toutes les lignes sauf celles qui contiennent les deux chaînes que je suis en train de supprimer, mais le code ne semble pas fonctionner.

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 );
    }
}
Était-ce utile?

La solution

Votre || doit être un &&.

i.e..

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

Dans le cas contraire, si la ligne ne correspond pas à l'un de nom ou par courrier électronique, il sera écrit.

Autres conseils

Ce sera toujours vrai: "Nom"! = "Nom" || " "Email"! = "Nom"

if(! (line.trim().equals(name) || line.trim().equals(email)) ){
}

Les autres affiches sont corrects. Vous devriez probablement cette .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top