带字符串的文件编写器(java)

时间:2012-06-25 11:36:06

标签: java string file writer

我的文本文件中没有使用此代码的换行符,这有什么问题?

try{
    oprint=new FileWriter("HighScores.txt",true);
} catch (IOException e1) {
    System.out.println("error");
}  
try{
    String stampa= "Player:  "+name+"  --- time "+ this.getDurata()+" s \n";
    oprint.write(stampa);
    oprint.close();
}catch(Exception e){
    System.out.println("error");
}

3 个答案:

答案 0 :(得分:3)

尝试使用:

public static String newline = System.getProperty("line.separator");

然后:

oprint.write("Player:  " + "x" + "  --- time " + "durata" + " s " + newline);

这更好,因为不同的操作系统有不同的编写新行的方法。 Linux使用“\ n”,Mac使用“\ r”,Windows使用“\ r \ n”表示换行。

答案 1 :(得分:0)

您确定您的编辑或查看者不希望在行尾有回车符(CR)吗?

若是,请尝试以下方法:

String stampa = "Player:  "+name+"  --- time "+ this.getDurata()+" s \r\n";

或者您可以使用String.format

String stampa = String.format("Player: %s  --- time %d s %n", name, this.getDurata());

来自format documentation

  

'n'行分隔符结果是特定于平台的行   分离器

答案 2 :(得分:0)

尝试将FileWriter包裹在PrintWriter中并使用其println()方法。

PrintWriter oprint;
try{
    oprint=new PrintWriter(new FileWriter("HighScores.txt",true));
    String stampa= "Player:  "+name+"  --- time "+ this.getDurata()+" s";
    oprint.println(stampa);//<- print with new line sign
    oprint.close();
}catch(Exception e){
    System.out.println("error");
}