为什么BufferedWriter写sumbols而不是数字是有原因的?

时间:2019-02-01 16:07:21

标签: java bufferedwriter

我正在尝试从数字向文件写入二维数组,但是它仅将(SOH)写入1,(ENO)写入5,将空白写入0(NUL)。 我收到了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");
         }
     }

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

1 个答案:

答案 0 :(得分:8)

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

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

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