मैं सीख रहा हूं कि इनपुट इनपुट का उपयोग कैसे करें। मैं BufferedInputStream के लिए चिह्न का उपयोग करने की कोशिश कर रहा था, लेकिन मैं इन अपवादों है जब मैं रीसेट करने का प्रयास:बुफर्ड इनपुट स्ट्रीम मार्क पढ़ने की सीमा
java.io.IOException: Resetting to invalid mark
मैं इसका मतलब यह मेरा निशान पढ़ा है कि सीमा गलत सेट कर दिया जाता है। मैं वास्तव में नहीं जानता कि कैसे निशान() में पढ़ने की सीमा निर्धारित करें। मैंने इस तरह कोशिश की:
is = new BufferedInputStream(is);
is.mark(is.available());
यह भी गलत है।
is.mark(16);
यह भी एक ही अपवाद फेंकता है। मुझे कैसे पता चलेगा कि मुझे पढ़ने की सीमा क्या है? चूंकि मैं इनपुट स्ट्रीम से अलग-अलग फ़ाइल आकार पढ़ रहा हूं।
मेरा निजी लेना? चिह्न का उपयोग न करें - जबकि मुझे यकीन है कि एक है, मुझे अभी तक इसके लिए एक अच्छा कारण नहीं मिला है। अक्सर यह पहली जगह में खराब हैंडलिंग का संकेत है। मैं एक धारा के रूप में एक धारा के रूप में सोचने के लिए प्रवृत्त नहीं करता जब तक कि मैं अपने सबसे कच्चे रूप से निपट रहा हूं। इसके बजाय इसके चारों ओर एक तंग आवरण होगा जो इसकी जानकारी प्राप्त करता है, इसे संकुल करता है, और उस पैकेज को ऐप में कहीं भी प्रोसेस करने के लिए भेजता है। – corsiKa
@glowcoder आपकी टिप्पणी के लिए धन्यवाद। जैसा कि मैंने पहले कहा था, मैं इनपुटस्ट्रीम के साथ काम करने में नया हूं। मैं वास्तव में दो बार इनपुट स्ट्रीम का उपयोग करने की कोशिश कर रहा था। मैंने सोचा कि यह करने का यह तरीका है। निशान सेट करना और रीसेट करना। क्या आपके पास यह सुझाव है कि इसे कैसे प्राप्त किया जाए? –
मार्क इस तरह काम करता है। मान लें कि आपकी इनपुट स्ट्रीम 'ए बी सी डी ई' होने के समाप्त हो जाएगी। आप अब तक 'ए बी' संसाधित करते हैं। (याद रखें, आप नहीं जानते कि अभी तक 'डाउनस्ट्रीम' क्या है।) आप इसे चिह्नित करते हैं। फिर आप कुछ और पढ़ते हैं, और आपको 'सी डी ई' मिलता है। आप इसे देखते हैं और कहते हैं "रुको, मैं इस मोड में 'सी डी ई' को संसाधित नहीं कर सकता!" जो कोई भी कारण के लिए। तो आप कहते हैं, "मैं वास्तव में चाहता हूं कि मैं फिर से सी सी ई 'प्रक्रिया में वापस जा सकूं ... जो आप कर सकते हैं, क्योंकि आप इसे चिह्नित करते हैं।स्ट्रीम को वापस करने के लिए आप बस रीसेट() 'को रीसेट कर सकते हैं, जब आप इसे चिह्नित करते थे, और आप इसे फिर से पढ़ सकते हैं जैसे आपके पहले होगा। – corsiKa