Как читать до конца файла (EOF) с помощью BufferedReader в Java?
у меня проблема с чтением ввода до EOF
на Java
. Здесь есть один вход, а выход рассматривает вход каждой строки.
пример:
вход:
1
2
3
4
5
выход:
0
1
0
1
0
но, я закодировал с помощью Java, один выход будет напечатан, когда я вводил два числа. Я хочу один вход и печатать один выход каждой строки (terminate EOF
), используя BufferedReader
в Java.
это мой код:
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
StringBuffer pr = new StringBuffer("");
String str = "";
while((str=input.readLine())!=null && str.length()!=0) {
BigInteger n = new BigInteger(input.readLine());
}
2 ответов
вы потребляете строку at, которая отбрасывается
while((str=input.readLine())!=null && str.length()!=0)
и чтение bigint в
BigInteger n = new BigInteger(input.readLine());
поэтому попробуйте получить bigint из строки, которая читается как
BigInteger n = new BigInteger(str);
Constructor used: BigInteger(String val)
также изменить while((str=input.readLine())!=null && str.length()!=0)
to
while((str=input.readLine())!=null)
readLine()
Returns:
A String containing the contents of the line, not including any line-termination characters, or null if the end of the stream has been reached
посмотреть javadocs
с текстовыми файлами, возможно, EOF равен -1 при использовании BufferReader.read (), char by char. Я сделал тест с BufferReader.с readline()!=null и он нормально работал.