2012-12-15 6 views
5

Im zurückkehren zu tun versuchen -Scanner Konstruktor verursacht BufferedReader null

BufferedReader br = new BuffereReader(file); 
Scanner s = new Scanner(br); 
sys.out(s.next()); 
sys.out(buffReader.readLine()); 

Was ich jetzt passieren erwarten ist, haben 2 separate Leser auf die Datei an verschiedenen Orten zeigt. Der buffReader gibt jedoch null in der readLine zurück, während der Scanner einwandfrei zu funktionieren scheint. Kann ich 2 Leser haben wie ich will?

+3

Das können Sie mit Java nicht erreichen. –

Antwort

2

Was ich erwarte, ist, jetzt zwei getrennte Leser auf der Akte zu haben, die auf verschiedene Plätze zeigen.

Ihre Erwartungen sind fehl am Platz. An erster Stelle sind beide mit der gleichen zugrundeliegenden Datei verbunden, die nur eine aktuelle Position hat. An zweiter Stelle wird der Scanner um den BufferedReader gewickelt, so dass jede Änderung der Position durch den Scanner über BufferedReader verursacht.

+0

Ich bin nicht sicher, ob etwas, was mit dem Scanner geschieht, über den BufferedReader passiert. Kann der Scanner nicht eine Kopie von BufferedReaders-Ressourcen erstellen, so dass sie eine eigene besitzt? –

+0

@ Dgrin91 Ich habe das gerade beantwortet. Das nochmalige Fragen ändert die Antwort nicht. – EJP