символ хеша отображается в файле в Java - PullRequest
0 голосов
/ 23 мая 2018
 File f = new File("even.txt");
 FileOutputStream fo = new FileOutputStream(f);
 int a = 2;
 fo.write(a);
 fo.close();

Всякий раз, когда я запускаю эту программу и открываю файл even.txt, все, что я могу видеть, - это хеш-символ в файле.Этого не происходит, когда я работаю со строкой.

 File f = new File("even.txt");
 FileOutputStream fo = new FileOutputStream(f);
 String s = "2";
 byte b[] = s.getBytes();
 fo.write(b);
 fo.close();

Я не понимаю, почему это происходит.

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Что вам нужно понять, это

int a = 2;
fo.write(a); //This line write the byte 0x02 to the inputstream because that is the binary representation of the digit 2

String s = "2";
byte b[] = s.getBytes();
fo.write(b); //This one write 0x32 to the inputstream because that is the ascii respresentation of the character "2" which is return by getBytes() from the string class

. Вы можете проверить разницу между двумя файлами, сгенерированными кодом в шестнадцатеричном редакторе

0 голосов
/ 23 мая 2018

Вы должны написать строку.Вы можете попробовать одно из:

wr.write("222");
wr.write(new Integer(222).toString());
wr.write( String.valueOf(222) );

это потому, что метод fo.write (int) фактически не записывает сам int, он записывает символ, представленный int, в указанной кодировке (utf-8если не указано).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...