Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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 “爪哇新线”\";在“保存到文本文件”中不工作_Java_File Io - Fatal编程技术网

Java “爪哇新线”\";在“保存到文本文件”中不工作

Java “爪哇新线”\";在“保存到文本文件”中不工作,java,file-io,Java,File Io,这是我的密码: public String display() { return "\n......................\nFixed Employee:\n" + "Name: " + super.fullName() + "\nSalary: " + salary() + " tk\n......................"; } 但当我从主类调用此方法时,“\n”换行符不起作用。只显示一行输

这是我的密码:

public String display() {
    return "\n......................\nFixed Employee:\n" + 
           "Name: " + super.fullName() + 
           "\nSalary: " + salary() + 
           " tk\n......................";
}
但当我从主类调用此方法时,“\n”换行符不起作用。只显示一行输出。你能帮我解决这个问题吗


感谢在文件中保存使用
\r\n
<代码>\n因为新行在printstreams上是可行的,但不能写入文件。

您可能需要独立于系统的行分隔符,因为它可能因操作系统而异。只需将\n替换为行分隔符的值:

  • 加载任何系统属性时都可以检索到我:
公共字符串显示(){
String separator=System.getProperty(“line.separator”);//使用系统属性的键加载系统属性。
返回“\n………\n固定员工:\n”
+“姓名:”
+super.fullName()+
“\n报警:”
+薪金()
+“tk\n……”
.replace(“\\n”,分隔符);//在返回字符串之前替换\n
}
  • 或者简单地使用@Deepanshu Bedi建议的
    System#lineSeparator
    方法:
公共字符串显示(){
String分隔符= Stray.LeNeSePARTARE();/ /将其视为快捷方式。
返回“\n………\n固定员工:\n”
+“姓名:”
+super.fullName()+
“\n报警:”
+薪金()
+“tk\n……”
.replace(“\\n”,分隔符);//在返回字符串之前替换\n
}

字符串显示在哪里?在控制台上?或者在控件中?抱歉,忘了提一下,我正在将此“显示”保存在txt文件中。您编写它的方式表明您认为
\n
返回
语句中的行为不同,这显然是不正确的。谢谢!也许它起作用了。谢谢我正在使用FileWriter和BufferedWriter。-1这个答案没有基础。从什么时候开始,
\n
只用于打印?\r在编写文本文件时会起作用+1用于使用
System.lineseparator()
,但在这种情况下,使用标准
\r\n
可能适用于
.txt
文件。使用
.replace()
也会降低操作速度(由于正则表达式的缘故)。在串联中使用
+分隔符
,这样编译器就可以对其进行优化。是的,绝对正确,尽管使用
System.LineSeparator()
保存独立的机器代码并提供mor代码的可见性。