Я тестирую FileInputStream, чтобы прочитать текст файла (dulo.txt), текст в файле (в ANSI):
Здравствуй, мир!
Я использовал метод FileInputStream.read(), насколько я знаю, read() может читать только следующий байт, а поскольку char имеет 2 байта, как может программа работает? Разве он не должен рухнуть?
Это мой код:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
class Collections {
public static void main(String args[]) throws IOException {
FileInputStream fis= new FileInputStream(new File("dulO.txt"));
int spazioByte=fis.available();
for(int i=0; i<spazioByte;i++){
System.out.println("Byte: "+i+" :"+(char)fis.read());
}
}
}
Вывод консоли:
Byte: 0 :H
Byte: 1 :E
Byte: 2 :L
Byte: 3 :L
Byte: 4 :O
Byte: 5 :
Byte: 6 :W
Byte: 7 :O
Byte: 8 :R
Byte: 9 :L
Byte: 10 :D
.txt
имеют кодировку ANSI, то есть 8 бит (1 байт) на символ. - person Achrome   schedule 05.07.2013