2012-12-15 33 views
5

Im cố gắng để làm -Scanner constructor gây BufferedReader để trở về null

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

Những gì tôi mong đợi xảy ra là bây giờ có 2 độc giả riêng biệt trên các tập tin chỉ vào nhiều nơi khác nhau. Tuy nhiên, buffReader trả về null trên readLine, trong khi máy quét có vẻ hoạt động tốt. Tôi có thể có 2 độc giả như tôi muốn không?

+3

Bạn không thể đạt được điều đó bằng cách sử dụng Java. –

Trả lời

2

Điều tôi mong đợi xảy ra hiện tại có 2 độc giả riêng biệt trên tệp trỏ đến các địa điểm khác nhau.

Kỳ vọng của bạn không đúng chỗ. Ở vị trí đầu tiên, cả hai đều được kết nối với cùng một tệp cơ bản, chỉ có một vị trí hiện tại. Ở vị trí thứ hai, Máy quét được bao quanh BufferedReader, vì vậy bất kỳ thay đổi nào về vị trí gây ra bởi Máy quét sẽ xảy ra thông qua bộ đệm BufferedReader.

+0

Im không chắc chắn nếu bất cứ điều gì xảy ra với Máy quét xảy ra thông qua BufferedReader. Không thể Máy quét tạo bản sao của các tài nguyên BufferedReaders sao cho nó có riêng nó? –

+0

@ Dgrin91 Tôi vừa mới trả lời. Yêu cầu một lần nữa không thay đổi câu trả lời. – EJP

Các vấn đề liên quan