Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在将文本文件追加到StringBuffer后,是否有方法返回get换行符?_Java_Stringbuffer - Fatal编程技术网

Java 在将文本文件追加到StringBuffer后,是否有方法返回get换行符?

Java 在将文本文件追加到StringBuffer后,是否有方法返回get换行符?,java,stringbuffer,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 St

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

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

使用
System.getProperty(“line.separator”)
而不是
\n
以避免任何平台依赖性

根据所使用的操作系统,行分隔符可能会有所不同:

  • \n
    -*nix系统
  • \r\n
    -Windows系统

  • 我编译并运行了这段代码,它对我很有用。你在用什么操作系统?也许值得尝试System.getProperty(“line.separator”);而不是“\n”。旁白:
    sb.append(line).append(“\n”)
    将更有效。为了澄清,这将是sb.append(line+System.getProperty(“line.separator”)?这是一种方法。或者您可以
    stringlinesep=System.getProperty(“line.separator”);附加(行)附加(行)如果要在多个位置使用行分隔符。