Есть ли причина, по которой BufferedWriter пишет суммы вместо чисел? - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь записать в файл двумерный массив из чисел, но он записывает только (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 голосов
/ 01 февраля 2019

Вы звоните Writer.write(int), который записывает в писатель один символ.

Если вы хотите строковое представление числа, вам необходимосначала убедитесь, что вы преобразовали в строку и позвоните Writer.write(String).Самый простой способ сделать это - вызвать String.valueOf для выполнения преобразования:

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