有没有办法在将文本文件附加到StringBuffer后获取换行符?

时间:2014-11-22 20:54:24

标签: java stringbuffer

为了从文本文件中删除行,我执行以下操作:

 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,但是带有删除行的新文件仍然在一行中。是什么给了什么?

1 个答案:

答案 0 :(得分:2)

使用System.getProperty("line.separator");代替\n以避免任何平台依赖。

行分隔符可能因使用的操作系统而异:

  1. \n - * nix systems
  2. \r\n - Windows系统