我正在使用java文件,我想将文本写入文件,但它没有进入新行。如何用bufferWriter写新行?
public void setData() throws IOException{
File file = new File("SchoolDB.txt");
FileWriter fileWriter = new FileWriter(file);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
for(int j = 0; j < 5; j++){
School school = new School();
school = allSchools.get(j);
//set name
bufferedWriter.write(school.getName());
//houses
if(school.getHoused())
for(int i = 0; i < school.getHouses().size(); i++)
bufferedWriter.write(school.getHouses().get(i).getName());
else
bufferedWriter.write("0");
bufferedWriter.newLine();
//courses
if(school.getHouses().size() != 0)
for(int i = 0; i < school.getCourses().size(); i++)
bufferedWriter.write(school.getCourses().get(i).getName());
else
bufferedWriter.write("0");
//students
if(school.getNumOfStudents() != 0)
for(int i = 0; i < school.getStudents().size(); i++)
bufferedWriter.write(school.getStudents().get(i).getName());
else
bufferedWriter.write("0");
//professors
if(school.getProfessor().size() != 0)
for(int i = 0; i < school.getProfessor().size(); i++)
bufferedWriter.write(school.getProfessor().get(i).getName());
else
bufferedWriter.write("0");
// '*' :)
bufferedWriter.write("*");
}
bufferedWriter.close();
}
它工作正常,但我无法用新的内容写 顺便说一句,这些方法我试过并且没有用:
,输出如下: &#39;&#39; HogwartsGryffindorHufflepuffRavenclawSlytherin FlyingPotions0Minerva McGonagolSeverus Snape Beauxbatons0 00Olympe Maxime Durmstrang0 00Igor Karkaroff IlvermornyHorned SerpentWampusThunderbirdPukwudgie 防御黑暗艺术犯罪0Rionach Steward Koldovstoretz0 000 *&#39;&#39 ;. 它并没有在第一行分开
解决: 我认为这是运行此代码的选项卡的问题。我在服务标签中。我在主选项卡中运行此代码,它工作正常。 注意:我刚换了标签。在主要我有这个类的对象。
答案 0 :(得分:0)
你为什么不这么说
<强> bufferedWriter.write( “\ n”); 强>
答案 1 :(得分:0)
BufferedWriter.newLine();
是与平台无关的添加换行符的方式。当你说你没有换行时,你的意思是什么?你如何打开SchoolDB.txt
?您是否尝试使用十六进制查看器来查看实际字符?您是在一个操作系统(例如Linux)中创建它,而是在另一个操作系统中使用不同的新线条(例如Windows)进行检查吗?
无论如何,在Linux上试试
xxd SchoolDB.txt
并查找0a
个字符(unix样式的EOL)与0d0a
(Windows样式的CRLF)。如果您只有0a
作为EOL标记,那么在Windows上您可能会将其视为一行。