2013-08-01 10 views
10

Mam problem z odczytaniem wejścia do EOF w Java. Tutaj mamy pojedyncze wejście, a wyjście uwzględnia wejście każdej linii.Jak czytać do końca pliku (EOF) za pomocą BufferedReader w Javie?

Przykład:

wejściowe:

1 
2 
3 
4 
5 

wyjściowa:

0 
1 
0 
1 
0 

Ale mam zakodowane przy użyciu języka Java, pojedyncze wyjście zostanie wydrukowany kiedy byłem wprowadzanie dwóch liczb. Chcę pojedynczego wejścia i drukowania pojedynczego wyjścia każdej linii (zakończyć EOF) przy użyciu BufferedReader w Javie.

To jest mój kod:

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

Czy możesz wkleić swój kod, aby spróbować pomóc? – Deckard27

+0

Prawdopodobnie 'br.readLine()! = Null' !!! – NINCOMPOOP

+0

wklejesz swój kod ?, co próbowałeś dla –

Odpowiedz

13

spożywają linię AT, który jest odrzucany

while((str=input.readLine())!=null && str.length()!=0) 

i czytanie bigint w

BigInteger n = new BigInteger(input.readLine()); 

więc spróbuj coraz bigint z ciągu znaków, który jest odczytywany jako

012 Zmiana

Aslo while((str=input.readLine())!=null && str.length()!=0) do

while((str=input.readLine())!=null) 

zobacz sekcję post string to bigint

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 

zobaczyć javadocs

+0

dzięki, ale co powiesz na EOF? –

+0

EOF zostanie wykryty w '(str = input.readLine())! = Null' –

+0

Och, mój Boże. Dzięki, działa, mogę dowiedzieć się więcej o liniach, które mi powiedziałeś. Dziękuję i jeszcze raz dziękuję za ciebie, @a pytanie –

7

z plikami tekstowymi, może EOF -1 podczas korzystania BufferReader.read() char char. Zrobiłem test z BufferReader.readLine()! = Null i działało poprawnie.

Powiązane problemy