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”);附加(行)附加(行)代码>如果要在多个位置使用行分隔符。