2012-12-15 15 views
5

Im próbuje zrobić -konstruktor Scanner powoduje BufferedReader powrót zerowy

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

Czego spodziewać się zdarzyć, aby teraz mieć 2 oddzielne czytelników na plik wskazując w różnych miejscach. Jednak buffReader zwraca null na readLine, podczas gdy skaner wydaje się działać dobrze. Czy mogę mieć 2 czytelników, jak chcę?

+3

Nie można tego osiągnąć za pomocą Java. –

Odpowiedz

2

To, czego się spodziewam, to mieć teraz 2 oddzielne czytniki w pliku wskazującym w różnych miejscach.

Twoje oczekiwania są błędne. Po pierwsze oba są połączone z tym samym plikiem bazowym, który ma tylko jedną bieżącą pozycję. Po drugie, skaner jest owinięty wokół BufferedReader, więc każda zmiana pozycji wywoływana przez skaner ma miejsce w BufferedReader.

+0

Nie jestem pewien, czy coś, co dzieje się ze skanerem, dzieje się za pośrednictwem BufferedReader. Czy skaner nie może utworzyć kopii zasobów BufferedReaders, aby miała swoją własną? –

+0

@ Dgrin91 Właśnie odpowiedziałem na to. Pytanie ponownie nie zmienia odpowiedzi. – EJP

Powiązane problemy