Файловая машина не вставляет целочисленные значения времени выполнения в файл?


Я попытался добавить целочисленные значения в файл *.txt, но вместо этого он печатает значения ASCII.

Что не так с моим кодом?

public static void main(String[] args) throws IOException 
{
      FileWriter f1 = new FileWriter("C:\/New folder\/file1.txt");
      Writer bw1=new BufferedWriter(f1);
      int j=0;
      while(j!=20)
      {
        j=j+1;
        bw1.write(j);
        bw1.write(System.getProperty( "line.separator" ));
        bw1.flush();

        try {
          Thread.sleep(1000);
        } catch (InterruptedException e) {
        e.printStackTrace();
        }

      }
      f1.close();
}
1 2

1 ответ:

Вы используете метод в классе Writer, который принимает int в качестве аргумента , причем нижние 16 бит int представляют точку кода Unicode, а соответствующий символ печатается в файл, как показано в этой таблице:

таблица ASCII

Простым решением было бы вместо этого записать строки в файл:

bw1.write(String.valueOf(j));