मैं जावा में थोड़ी देर के लिए प्रोग्रामिंग कर रहा हूं, लेकिन मेरे पास अभी भी मूलभूत सिद्धांतों पर कुछ जलने वाले प्रश्न हैं। मैंने सुना है कि मुझे कुछ लोगों से डेटा प्रदर्शित करने के लिए System.out.println() का उपयोग करना चाहिए, और अन्य ने मुझे अलग-अलग विचार दिए हैं (जैसे प्रिंटस्ट्रीम या कुछ और)। जावा में कंसोल पर प्रिंट करने का सबसे अच्छा तरीका क्या है?क्या मुझे System.out.println() या कुछ और उपयोग करना चाहिए?
उत्तर
System.out
एक प्रिंटस्ट्रीम है।
यदि आपका मुख्य लक्ष्य कंसोल के साथ बातचीत करना है, तो java.io.Console
देखें। यदि आपका मुख्य लक्ष्य किसी प्रकार का लॉगिंग करना है, तो लॉगिंग फ्रेमवर्क जैसे जावा लॉगिंग एपीआई या log4j का उपयोग करें।
यदि आप अभी शुरू कर रहे हैं और कंसोल पर कुछ तार मुद्रित करना चाहते हैं तो System.out.println() ठीक रहेगा। अपने मूलभूत सिद्धांत प्राप्त करें और फिर आप जावा I/O के बेहतर बिंदुओं में जा सकते हैं।
इस तरह का निर्भर करता है कि आप क्या कर रहे हैं। लगभग हमेशा मैं जावा लॉगिंग एपीआई (java.util.logging) का उपयोग करने का सुझाव दूंगा। System.out.println एक "डीबग टूल" से अधिक है लेकिन फिर भी आपके पास जेडीके के लॉगिंग एपीआई का उपयोग करके आउटपुट पर अधिक नियंत्रण है ...
लॉग 4j और सीडी आउटपुट का उपयोग stdout पर करें। इसके बाद लॉगफाइल पर स्विच करना आसान है।
System.out
का उपयोग करना सबसे सरल और आमतौर पर सबसे प्रभावी तरीका है। यदि आपके पास मुद्रित होने के लिए बहुत कुछ है तो आप BufferedOutputStream
का उपयोग करके जांच कर सकते हैं।
स्ट्रिंग्स को और अधिक कुशलता से मुद्रित करने के द्वारा कुछ क्षमताएं प्राप्त की जा सकती हैं। यदि बहुत सारे संयोजन किए जा रहे हैं, तो StringBuilder
देखें।
System.out कंसोल पर प्रिंट करने के लिए अच्छा है। हालांकि, मैंने पाया कि java.util.logging का उपयोग करने के प्रयास को मेरे लिए बेहतर विकल्प था। (या कुछ लॉगिंग सिस्टम।)
यह इस बात पर निर्भर करता है कि आप किस जानकारी को प्रदर्शित करने का प्रयास कर रहे हैं। यदि यह कंसोल उपयोगकर्ता-इंटरैक्शन के लिए है, तो System.out सही है। यदि यह डीबग-आईश जानकारी प्रदर्शित करना है, तो लॉगिंग शायद जाने का तरीका है क्योंकि इससे आपको चीजों पर अधिक नियंत्रण हो सकता है।
(प्रारंभिक सेट-अप के बाद, प्रवेश उपयोगिताओं लगभग के रूप में System.out का उपयोग कर के रूप में पारदर्शी हैं।)
यू
System.setOut (नई PrintStream ("सभी मेरी-sysouts सेट कर सकते हैं जाओ-इन-यह-file.txt ");
और फिर sysoyts कर ...
यू उन्हें baretail का उपयोग कर ट्रैक कर सकते हैं ...
आशा यह मदद करता है ..
राज।
मैं जावा लॉगिंग एपीआई
उपयोग करने के लिए सुझाव देगाहाँ, सरल और कारगर तरीका कंसोल के लिए मुद्रित करने के लिए आमतौर पर 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। इस अद्वितीय ऑब्जेक्ट के लिए एक संदर्भ विधि स्थिर विधि कंसोल() का उपयोग कर सिस्टम क्लास से प्राप्त किया जा सकता है।
लेकिन यदि आपकी आवश्यकता पूरी एप्लिकेशन को डीबग करना है तो सभी ने कहा कि लॉगर्स का उपयोग करने का सबसे अच्छा तरीका है।
- 1. क्या मुझे सिम या वेक्टर एक्सटेंशन या कुछ और उपयोग करना चाहिए?
- 2. निर्भरता इंजेक्शन: क्या मुझे कुछ वस्तुओं के लिए सब कुछ इंजेक्ट करना चाहिए या सेवा लोकेटर का उपयोग करना चाहिए?
- 3. मुझे क्या करना चाहिए?
- 4. क्या मुझे टेक्स्ट फ़ाइल या डेटाबेस का उपयोग करना चाहिए?
- 5. मुझे क्या उपयोग करना चाहिए? यूटीएफ 8 या यूटीएफ 16?
- 6. जब मुझे कुछ आइटम चाहिए, तो क्या मुझे इसके बजाय "int id" का उपयोग करना चाहिए?
- 7. क्या मुझे अलार्ममेनगर या हैंडलर का उपयोग करना चाहिए?
- 8. क्या मुझे इंटरफ़ेस निर्माता का उपयोग करना चाहिए या नहीं?
- 9. क्या मुझे विरासत या संरचना का उपयोग करना चाहिए?
- 10. क्या मुझे बूटस्ट्रैप का उपयोग करना चाहिए?
- 11. क्या मुझे WPF कनवर्टर या ट्रिगर का उपयोग करना चाहिए?
- 12. क्या मुझे स्लीप() का उपयोग करना चाहिए या बस उन्हें
- 13. क्या मुझे int या UInt16 का उपयोग करना चाहिए?
- 14. मुझे क्या gacutil.exe का उपयोग करना चाहिए?
- 15. क्या मुझे google-app-engine-django या ऐप-इंजन-पैच या न तो या कुछ और उपयोग करना चाहिए?
- 16. एचटीएमएल। क्या मुझे सीडीएटीए का उपयोग करना चाहिए या HTML
- 17. तालिका या सूची: मुझे यहां क्या उपयोग करना चाहिए?
- 18. क्या मुझे एम या पीएक्स का उपयोग करना चाहिए?
- 19. क्या मुझे डबल या फ्लोट का उपयोग करना चाहिए?
- 20. क्या मुझे scipy.pi, numpy.pi, या math.pi का उपयोग करना चाहिए?
- 21. क्या मुझे फ़्लैश या फ्लेक्स का उपयोग करना चाहिए?
- 22. शेयरपॉइंट: क्या मुझे सूचियों या डेटाबेस का उपयोग करना चाहिए?
- 23. प्रिज्म- एमईएफ या एकता में मुझे क्या उपयोग करना चाहिए?
- 24. क्या मुझे फोबोस या टैंगो का उपयोग करना चाहिए?
- 25. क्या मुझे HttpRuntime.Cache का उपयोग करना चाहिए?
- 26. जीयूआई। क्या मुझे एसडब्ल्यूटी या जीडब्ल्यूटी का उपयोग करना चाहिए?
- 27. क्या मुझे डेटा.फ्रेम या मैट्रिक्स का उपयोग करना चाहिए?
- 28. क्या मुझे AppDomain.CurrentDomain.BaseDirectory या System.Environment.CurrentDirectory का उपयोग करना चाहिए?
- 29. क्या मुझे श्रोता या पर्यवेक्षक का उपयोग करना चाहिए?
- 30. क्या मुझे eval() या call_user_func() का उपयोग करना चाहिए?
शायद उन्होंने जावा I/O पुस्तकालयों को लिखा: पी – wshato