У меня есть текстовый файл с содержимым abcdefgh, сохраненным на моем компьютере. Я хотел использовать FileInputStream для отображения символов на моей консоли, а также измерения времени, необходимого для этого. Это выглядит следующим образом:Использование FileInputStream для чтения текста из файла
public class Readtime {
public static void main(String args[]) throws Exception{
FileInputStream in=new FileInputStream("bolbol.txt");
while(in.read()!=-1){
long startTime = System.nanoTime();
int x = in.read();
long endtime = System.nanoTime();
System.out.println(endtime-startTime);
System.out.println((char)x);
}
in.close();
}
}
Что я получаю на консоли следующее:
8863
b
7464
d
6998
f
6997
h
Теперь где остальные буквы? Это как если бы было сделано только 4 операции чтения. Мой ум идет в направлении размера символа, и что read()
читает только один байт за раз, но я никуда не денусь.
Пожалуйста, покажите вход и ожидаемый результат. – Sybren
Содержимое текстового файла было указано как abcdefgh. Ожидаемым выходом будут буквы от a до h вместе с временем, которое требуется для чтения каждого из них. –
Кроме того, не предполагайте, что каждый байт является символом. Это верно только при некоторых кодировках. Например, это неверно для UTF-8. Используйте Reader для чтения символов. Потоки для байтов. –