2012-01-25 76 views
5

Tôi đã sử dụng đối tượng Máy quét để nhập vào cho đến bây giờ và muốn tìm hiểu cách BufferedReader hoạt động. Tôi đã thử nó và nó có vẻ là làm việc chỉ cho Strings. ai đó có thể chỉ cho tôi làm thế nào để sử dụng nó với ints và tăng gấp đôi? và làm thế nào để bạn yêu cầu hai đầu vào chuỗi trên cùng một dòng? Cảm ơn.Sử dụng BufferedReader để nhập dữ liệu vào java

Trả lời

7

Hãy suy nghĩ về BufferedReaderScanner như là ở mức trừu tượng khác nhau, chứ không phải là phần hoán đổi cho nhau rằng "làm điều tương tự." Tôi nghĩ rằng đây là vấn đề cơ bản mà bạn đang treo lên.

BufferedReader có ý nghĩa "đơn giản" hơn Scanner. BufferedReader chỉ cần đọc String s.

Scanner mạnh hơn nhiều so với BufferedReader. Nó có các API giúp dễ dàng trích xuất các đối tượng thuộc nhiều loại khác nhau.

Tôi có thể tưởng tượng Scanner đang được viết bằng cách sử dụng BufferedReader làm khối xây dựng cơ bản. Trong khi sử dụng Scanner để viết BufferedReader sẽ giống như giết một con kiến ​​với một cái búa tạ.

+3

+1 cho 'giết một con kiến ​​bằng búa tạ'. Đó là thực sự không thú vị cho một trong hai kiến ​​hoặc búa. – Perception

2

Có, trình bufferedreader sẽ chỉ nhận các chuỗi. bạn cần phải chuyển đổi chúng thành int hoặc double khi được yêu cầu bằng cách sử dụng Integer.parseInt (value) hoặc Double.parseDouble (giá trị) hoặc số double.parseDouble (giá trị)

+0

okay và làm thế nào để bạn yêu cầu hai đầu vào Chuỗi trên cùng một dòng? –

+0

với Máy quét, bạn có thể sử dụng chức năng scan.next() nhưng với bufferedreader? Cảm ơn –

+0

Các dòng được phân biệt dựa trên "\ n" được nhập. – tazo

1

Về cơ bản, BufferedReader lấy luồng đầu vào làm đối số.

Bạn phải sử dụng các phương pháp tích hợp để phân tích chuỗi thành ints and doubles.

Giống như:

BufferedReader br = new BufferedReader(new FileReader("input1.txt")) 
String line = br.readLine(); 
//more logic here 

int number = Integer.parseInt(brstring); 
double number = Double.parseDouble(brstring); 
+0

bạn có thể cho tôi biết cách yêu cầu hai đầu vào Chuỗi trên cùng một dòng không? cảm ơn –

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