java - 如何在 FileOutputStream 的 tex 文件上创建新行

标签 java arrays newline fileoutputstream

如何为每个循环创建一个新行?我的程序继续在一行中显示所有内容...或者如何设置 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/

相关文章:

javascript - 更新二维数组中对象的值

javascript - 为什么 Array 的自定义实现比原生 JavaScript Array 更高效?

PHP 换行不起作用

linux - Bash:将 `cat` 重定向到没有换行符的文件

java - 我在背包问题的递归中得到不同的值

java - Java程序: unmappable character for encoding UTF8的编译错误

java - 使用Java获取给定Excel中特定列的行数

c++ - 对于循环数组迭代,if循环测试索引是否为真/假,错误地评估真

java - Selenium - 无法通过类名定位元素

c++ - 如何将字符串与回车符 0x0D 进行比较?