कंसोल पर प्रगति पट्टी या किसी भी प्रकार के पाठ को लिखने के लिए, \n
(नई लाइन) के बजाय बस अपना आउटपुट \r
(कैरिज रिटर्न) के साथ समाप्त करें ताकि अगली पंक्ति इसे ओवरराइट कर सके। यह question अधिक जानकारी में जाता है। F-ANSI लाइब्रेरी आपको पिछली लाइन को ओवरराइट करने सहित आसानी से दिखने वाले कंसोल आउटपुट को सक्षम करने में सक्षम बनाता है।
लेकिन यदि आप लॉगिंग फ्रेमवर्क का उपयोग करने पर सेट हैं, न केवल यह संभव है, लेकिन यह वही नहीं है जो आप चाहते हैं। जैसा कि क्रिसम सुझाव देता है, लॉग प्रगति का सही तरीका अब तक किए गए प्रतिशत के साथ हर बार एक नई लाइन लॉग करना है। इस तरह, आप देख सकते हैं कि आपका प्रोग्राम क्या कर रहा है और संदर्भ में कितना दूर है।
ऐसा लगता है कि आप ऐसा करना चाहते हैं जो आपके प्रोग्राम के वास्तविक आउटपुट से लॉगिंग को अलग करता है (यह आम तौर पर एक अच्छा विचार है, प्रगति पट्टी के मुद्दे को भी अनदेखा करता है)। प्रोग्राम के निष्पादन के बारे में जानकारी लॉग इन करने के लिए अपने लॉगिंग फ्रेमवर्क का उपयोग करें; चीजें जिन्हें आप या किसी को डिबगिंग करना चाहते हैं। वास्तविक प्रोग्राम का आउटपुट सीधे पर System.out
के माध्यम से लिखा जाना चाहिए।
फिर आप अलग-अलग निर्णय ले सकते हैं कि आप अपने लॉगिंग के साथ क्या करना चाहते हैं। इसे stdout
पर भी लिखा जा सकता है, और आपके लॉग और आउटपुट एक साथ रह सकते हैं, लेकिन stderr
(जो इसे अधिक आसान पुनर्निर्देशित करता है) या एक लॉग फ़ाइल (जो आपके प्रोग्राम के आउटपुट क्लीनर को बनाता है, और आपके लॉग को जारी रखता है) को लिखना बेहतर होगा बाद में संदर्भ के लिए)।
इसके अलावा, अगर जावा एक शर्त pv
आदेश के माध्यम से यह पहुंचाया डेटा की मात्रा के आधार पर एक शक्तिशाली, अनुकूलन प्रगति बार प्रदान करता है नहीं है।
मुझे प्रश्न समझ में नहीं आता है। लॉग प्रविष्टि में आप प्रगति पट्टी कैसे प्रदर्शित करेंगे? यदि आप पहले से ही प्रगति को जानते हैं, तो xx% क्यों मुद्रित नहीं करें? – ChrisM