2012-01-26 39 views
7

Bắt đầu ra với Java khá dễ dàng vì bạn có thể sử dụng System.out.print và các mục tương tự.Cách tốt nhất để có được giao diện điều khiển-đầu vào trong Java là gì?

Mặt khác, có vẻ hơi khác một chút. Một số người khuyên bạn nên java.util.Scanner trong khi những người khác khuyên bạn nên java.io.BufferedReader và tôi chắc chắn có rất nhiều đề xuất khác. Hai phương pháp trên được sử dụng thường xuyên nhất.

Dường như không có các tùy chọn rất hay (theo ý kiến ​​của tôi). Vì vậy, có cách nào tốt hơn để có được đầu vào từ một cửa sổ giao diện điều khiển trong Java? Và nếu không, tôi nên chọn cái nào?

+4

[Có một cái nhìn ở đây] (http://stackoverflow.com/a/930073/593709) –

+1

Hãy xem [JLine] (http://sourceforge.net/projects/jline/). Đó là một giao diện giống như lệnh shell với lịch sử lệnh, hoàn thành TAB, v.v. –

Trả lời

5

Tôi nghĩ, Lớp máy quét khá hữu ích. Ví dụ với BufferedReader, bạn phải đọc một dòng tại một thời điểm và phân tích nó cho các giá trị. Nhưng trong máy quét bạn nhận được số nguyên với phương pháp nextInt() vv

5

tôi cảm thấy Scanner là hữu ích trong hai khía cạnh,

1) you can get input from command prompt and infuture if you want to change to file system, it will be quick 

2) While reading integer inputs you don't need to parse 

. Tôi thích Scanner.

1

Máy quét rất tiện dụng, nhưng nó chậm hơn BufferedReader.

0

Đối với giao diện điều khiển đầu vào chúng tôi đã giới thiệu phương pháp mới từ JAVA 1,6

System.console() //using java.io.* 

nó có các tùy chọn cho readPassword() (sẽ không hiển thị nhân vật nhập vào giao diện điều khiển cũng không cache nó) và readLine(). Máy quét

Máy quét là tùy chọn dễ nhất và tốt nhất cho ít đầu vào hơn nhưng chậm hơn một chút so với các tùy chọn khác như console()bufferedReader() khi bạn có quá nhiều đầu vào để xử lý từ bảng điều khiển.

Cá nhân tôi thích bufferedReader() vì nó sẽ hoạt động với các phiên bản trước đó và môi trường không tương tác cũng cộng với tốc độ nhanh hơn.

Phương thức console() không hoạt động trong môi trường không tương tác (ví dụ: IDE).

0

Tôi thích sử dụng bảng điều khiển nếu bạn đang sử dụng Java 1.6 hoặc mới nhất.

Đó là một lớp lót đơn giản.

String str = System.console().readLine(); 
Các vấn đề liên quan