2012-01-26 10 views
7

जावा के साथ आउटपुट प्राप्त करना बहुत आसान है क्योंकि आप System.out.print और इसी तरह का उपयोग कर सकते हैं।जावा में कंसोल-इनपुट प्राप्त करने का सबसे अच्छा तरीका क्या है?

इनपुट, दूसरी ओर, थोड़ा अलग लगता है। कुछ लोग java.util.Scanner की सलाह देते हैं जबकि अन्य java.io.BufferedReader की सलाह देते हैं, और मुझे यकीन है कि कई अन्य सिफारिशें हैं। उपर्युक्त दो विधियां नियमित रूप से उपयोग की जाती हैं।

न तो बहुत अच्छे विकल्प पेश करते हैं (मेरी राय में)। तो, जावा में कंसोल विंडो से इनपुट प्राप्त करने का कोई बेहतर तरीका है? और यदि नहीं है, तो मुझे कौन सा चयन करना चाहिए?

+4

(http://stackoverflow.com/a/930073/593709) –

+1

पर एक नजर डालें [JLine] (http://sourceforge.net/projects/jline/) [एक नज़र यहाँ है]। यह कमांड इतिहास, टैब पूर्ण करने आदि के साथ एक कमांड शेल-जैसे इंटरफ़ेस है। –

उत्तर

5

मुझे लगता है, स्कैनर कक्षा काफी उपयोगी है। उदाहरण के लिए BufferedReader के साथ, आपको एक समय में एक पंक्ति पढ़नी है और मूल्यों के लिए इसे पार्स करना है। लेकिन स्कैनर में आप nextInt() विधि आदि

5

मुझे लगता है स्कैनर दो पहलुओं में सहायक है,

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 

साथ पूर्णांकों मिलता है। मैं स्कैनर पसंद करते हैं।

1

स्कैनर आसान है, लेकिन यह BufferedReader से धीमा है।

0

सांत्वना इनपुट के लिए वे जावा 1,6

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

यह readPassword() के लिए विकल्प (कंसोल पर दर्ज की गई चरित्र नहीं दिखाया जाएगा और साथ ही यह कैश नहीं है) और readLine() के बाद से नए तरीके से पेश किया है।

स्कैनर कम इनपुट आने के लिए सबसे आसान और अच्छा विकल्प है, लेकिन यह console() और bufferedReader() जैसे अन्य विकल्पों की तुलना में थोड़ा धीमा है जब आपके पास कंसोल से संभालने के लिए बहुत सारे इनपुट हैं।

मुझे व्यक्तिगत रूप से bufferedReader() पसंद है क्योंकि यह पिछले संस्करणों और गैर-इंटरैक्टिव वातावरण के साथ-साथ प्लस तेज होगा।

console() विधि गैर-इंटरैक्टिव वातावरण (यानी एक आईडीई) में काम नहीं करती है।

0

यदि आप जावा 1.6 या नवीनतम का उपयोग कर रहे हैं तो मैं कंसोल का उपयोग करना पसंद करता हूं।

यह एक आसान लाइनर है।

String str = System.console().readLine(); 
संबंधित मुद्दे