2010-07-23 12 views
5

मैं जावा में थोड़ी देर के लिए प्रोग्रामिंग कर रहा हूं, लेकिन मेरे पास अभी भी मूलभूत सिद्धांतों पर कुछ जलने वाले प्रश्न हैं। मैंने सुना है कि मुझे कुछ लोगों से डेटा प्रदर्शित करने के लिए System.out.println() का उपयोग करना चाहिए, और अन्य ने मुझे अलग-अलग विचार दिए हैं (जैसे प्रिंटस्ट्रीम या कुछ और)। जावा में कंसोल पर प्रिंट करने का सबसे अच्छा तरीका क्या है?क्या मुझे System.out.println() या कुछ और उपयोग करना चाहिए?

उत्तर

14

System.out एक प्रिंटस्ट्रीम है।

यदि आपका मुख्य लक्ष्य कंसोल के साथ बातचीत करना है, तो java.io.Console देखें। यदि आपका मुख्य लक्ष्य किसी प्रकार का लॉगिंग करना है, तो लॉगिंग फ्रेमवर्क जैसे जावा लॉगिंग एपीआई या log4j का उपयोग करें।

15

यदि आप अभी शुरू कर रहे हैं और कंसोल पर कुछ तार मुद्रित करना चाहते हैं तो System.out.println() ठीक रहेगा। अपने मूलभूत सिद्धांत प्राप्त करें और फिर आप जावा I/O के बेहतर बिंदुओं में जा सकते हैं।

+0

शायद उन्होंने जावा I/O पुस्तकालयों को लिखा: पी – wshato

1

इस तरह का निर्भर करता है कि आप क्या कर रहे हैं। लगभग हमेशा मैं जावा लॉगिंग एपीआई (java.util.logging) का उपयोग करने का सुझाव दूंगा। System.out.println एक "डीबग टूल" से अधिक है लेकिन फिर भी आपके पास जेडीके के लॉगिंग एपीआई का उपयोग करके आउटपुट पर अधिक नियंत्रण है ...

0

लॉग 4j और सीडी आउटपुट का उपयोग stdout पर करें। इसके बाद लॉगफाइल पर स्विच करना आसान है।

0

System.out का उपयोग करना सबसे सरल और आमतौर पर सबसे प्रभावी तरीका है। यदि आपके पास मुद्रित होने के लिए बहुत कुछ है तो आप BufferedOutputStream का उपयोग करके जांच कर सकते हैं।

स्ट्रिंग्स को और अधिक कुशलता से मुद्रित करने के द्वारा कुछ क्षमताएं प्राप्त की जा सकती हैं। यदि बहुत सारे संयोजन किए जा रहे हैं, तो StringBuilder देखें।

2

System.out कंसोल पर प्रिंट करने के लिए अच्छा है। हालांकि, मैंने पाया कि java.util.logging का उपयोग करने के प्रयास को मेरे लिए बेहतर विकल्प था। (या कुछ लॉगिंग सिस्टम।)

यह इस बात पर निर्भर करता है कि आप किस जानकारी को प्रदर्शित करने का प्रयास कर रहे हैं। यदि यह कंसोल उपयोगकर्ता-इंटरैक्शन के लिए है, तो System.out सही है। यदि यह डीबग-आईश जानकारी प्रदर्शित करना है, तो लॉगिंग शायद जाने का तरीका है क्योंकि इससे आपको चीजों पर अधिक नियंत्रण हो सकता है।

(प्रारंभिक सेट-अप के बाद, प्रवेश उपयोगिताओं लगभग के रूप में System.out का उपयोग कर के रूप में पारदर्शी हैं।)

0

यू

System.setOut (नई PrintStream ("सभी मेरी-sysouts सेट कर सकते हैं जाओ-इन-यह-file.txt ");

और फिर sysoyts कर ...

यू उन्हें baretail का उपयोग कर ट्रैक कर सकते हैं ...

आशा यह मदद करता है ..

राज।

0

मैं जावा लॉगिंग एपीआई

उपयोग करने के लिए सुझाव देगा
0

हाँ, सरल और कारगर तरीका कंसोल के लिए मुद्रित करने के लिए आमतौर पर System.out.print() और println(), लेकिन अगर आपके पास है भेजने के लिए आउटपुट की एक बड़ी मात्रा, System.out.println() अक्षम हो सकती है, क्योंकि यह लाइन-बफर किया गया है और यूनिकोड हैंडलिंग से संबंधित बहुत कुछ काम करता है। इसके छोटे बफर आकार के कारण, System.out।println() बैच मोड में कई दोहराव वाले आउटपुट को संभालने के लिए उपयुक्त नहीं है। प्रत्येक पंक्ति तुरंत फिसल जाती है। उस स्थिति में, आप एक BufferedOutputStream या BufferedWriter का उपयोग करना चाह सकते हैं।

यह ध्यान रखना महत्वपूर्ण है कि System.out हमेशा एप्लिकेशन कंसोल या टर्मिनल पर नहीं जाता है। System.out अंक अनुप्रयोग मानक आउटपुट चैनल; सी/सी ++ में इसे स्टडआउट कहा जाता है। यह कंसोल पर जा सकता है, लेकिन यह कहीं भी जा सकता है कि उपयोगकर्ता इसे भेजने का निर्णय लेता है। उदाहरण के लिए एक फ़ाइल तो System.out पर मुद्रित सबकुछ फ़ाइल my-app-output.txt फ़ाइल में समाप्त हो जाएगा।

तो, यदि आप नियमित आउटपुट भेजना चाहते हैं, तो System.out का उपयोग करें। यदि आप कंसोल पर जाने के एक महान मौके के साथ एक त्रुटि संदेश या उपयोगकर्ता अधिसूचना भेजना चाहते हैं, तो System.err.print() और System.err.println() का उपयोग करें।

1.6 से पहले जावा के संस्करणों में 'असली' कंसोल पर चैनल प्राप्त करने का कोई पोर्टेबल तरीका नहीं है। 1.6 में, एक ऑब्जेक्ट क्लास विशेष रूप से कंसोल का प्रतिनिधित्व करने के लिए है: java.io.Console। इस अद्वितीय ऑब्जेक्ट के लिए एक संदर्भ विधि स्थिर विधि कंसोल() का उपयोग कर सिस्टम क्लास से प्राप्त किया जा सकता है।

लेकिन यदि आपकी आवश्यकता पूरी एप्लिकेशन को डीबग करना है तो सभी ने कहा कि लॉगर्स का उपयोग करने का सबसे अच्छा तरीका है।

संबंधित मुद्दे

 संबंधित मुद्दे