BufferedWriter 写 sumbols 而不是数字是有原因的吗?

Is there a reason why the BufferedWriter writes sumbols instead of numbers?

我正在尝试将数字的二维数组写入文件,但它只为 1 写入 (SOH),为 5 写入 (ENO),为 0(NUL) 写入空白 space。 我从 NotePad++

收到了那些信件
    int[][] array= new int[][]
    {
          { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
          { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
          { 1, 0, 0, 0, 5, 0, 0, 0, 0, 1 },
          { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
          { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
    };
     String level = "Level.txt";
     try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(level))) {
         for(int i=0;i<masiv1.length;i++)
         {
             for(int j=0;j<array[i].length;j++)
             {
                 writer.write(array[i][j]);
             }
             writer.write("\n");
         }
     }

如果可能,我想将数字写入文件。

您正在调用 Writer.write(int),它将单个字符写入写入器。

如果您想要数字的字符串表示,您需要确保先转换为字符串并调用Writer.write(String)。最简单的方法是调用 String.valueOf 来执行转换:

writer.write(String.valueOf(array[i][j]));