如何为每个循环创建一个新行?我的程序继续在一行中显示所有内容...或者如何设置 diff 类来从数组写入数据
static void writetofile(studentClass[] students)
{
try(DataOutputStream str= new DataOutputStream(new FileOutputStream("new.txt")) )
{
for(int i=0;i<students.length;i++)
{
str.writeBytes(students[i].getStudentFname()+", ");
str.writeBytes(students[i].getStudentLname()+" ");
str.writeBytes(Integer.toString(students[i].getTestSore()));
str.writeBytes(" ");
str.writeChar(students[i].getGrade());
str.writeBytes("\n");
}
}
catch(Exception e)
{
System.out.println("Error");
}
}
最佳答案
我怀疑您在尝试查看文件时使用了错误的行分隔符:Windows 使用 \r\n
作为行分隔符,*nix 使用 \n
等等
如果您使用值得使用的文本编辑器/查看器来查看文件(即不是记事本),那么这应该不重要 - 它应该检测行分隔符。
<小时/>您可能会发现使用java.util.Formatter
而不是DataOutputStream
(以及增强的for循环)更容易:
try (Formatter fmt = new Formatter(new FileOutputStream(...)) {
for (studentClass student : students) {
fmt.format("%s, %s %d %s%n",
student.getStudentFname(),
student.getStudentLname(),
student.getTestSore(),
student.getGrade());
}
}
请注意,这使用 %n
,即运行代码的平台的特定于平台的行分隔符。如果您想指定特定的行分隔符,可以使用 \n
(或 \r\n
或其他)。
关于java - 如何在 FileOutputStream 的 tex 文件上创建新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37220238/