为了从文本文件中删除行,我执行以下操作:
public void removeTagLine(String tag, String filename)
{
try
{
BufferedReader br=new BufferedReader(new FileReader(filename));
//String buffer to store contents of the file
StringBuffer sb=new StringBuffer("");
String line;
while((line=br.readLine())!=null)
{
//Store each valid line in the string buffer
if(!line.contains(tag))
sb.append(line+"\n"); //here
}
br.close();
FileWriter fw=new FileWriter(new File(filename));
//Write entire string buffer into the file
fw.write(sb.toString());
fw.close();
}
catch (Exception e)
{
System.out.println("Something went horribly wrong: "+e.getMessage());
}
}
这完全符合我的希望,除非我失去了所有的新线。值得注意的是,我的换行是通过
来完成的writer.newLine();
正如你可以看到我在这里标记注释的位置,我正在添加一个\ n,但是带有删除行的新文件仍然在一行中。是什么给了什么?
答案 0 :(得分:2)
使用System.getProperty("line.separator");
代替\n
以避免任何平台依赖。
行分隔符可能因使用的操作系统而异:
\n
- * nix systems \r\n
- Windows系统