我有以下代码,但它似乎没有工作..任何人有任何想法为什么?基本上我正在创建一个包含所有行的新文件,除了包含我试图删除的两个字符串的那些行,但代码似乎没有用。
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 );
}
}
答案 0 :(得分:2)
你的||需要成为一个&&。
即。
!line.trim().equals(name) && !line.trim().equals(email)
否则,如果该行不等于姓名或电子邮件,则会写入。
答案 1 :(得分:1)
这将永远是真的: “姓名”!=“姓名”|| “”电子邮件“!=”姓名“
if(! (line.trim().equals(name) || line.trim().equals(email)) ){
}
答案 2 :(得分:0)
其他海报是正确的。您应该阅读this。