2011-11-18 20 views
10

मुझे सामान्य विचार पता है, लेकिन मुझे यकीन नहीं है कि एंड्रॉइड एपीआई राज्यों के बाद इसका प्रभाव क्या है: "इस स्ट्रीम को फ़्लश करता है। इस विधि के कार्यान्वयन को यह सुनिश्चित करना चाहिए कि कोई भी बफर किया गया डेटा लिखा गया हो। यह कार्यान्वयन कुछ भी नहीं करता है। "एंड्रॉइड स्ट्रीम में फ्लश() बंद() का उपयोग करने के लाभ?

यह कार्यान्वयन कुछ भी नहीं करता < - क्या इसका मतलब यह बेकार है या क्या मुझे कुछ याद आ रहा है?

उत्तर

4

आप

http://download.oracle.com/javase/1.4.2/docs/api/java/io/OutputStream.html#flush()

Flushes इस उत्पादन धारा ओरेकल पर विस्तारित डॉक्स पढ़ सकते हैं और किसी भी बफ़र उत्पादन बाइट्स लिखा होने के लिए बाध्य हैं। फ्लश का सामान्य अनुबंध यह है कि इसे कॉल करना एक संकेत है कि, यदि पहले से लिखा गया कोई भी बाइट आउटपुट स्ट्रीम के कार्यान्वयन से बफर किया गया है, तो बाइट्स को तुरंत उनके इच्छित गंतव्य पर लिखा जाना चाहिए।

आउटपुटस्ट्रीम की फ्लश विधि कुछ भी नहीं करती है।

मतलब, विधि खुद कुछ नहीं करता है, और यह सार है, इसलिए किसी भी अंतर्निहित कक्षा फ्लशिंग धाराओं का अपना संस्करण लागू कर सकते हैं और उन्हें मजबूर कर लिखने के लिए (लिखने कतार में प्रतीक्षा नहीं)

लेकिन वैसे भी, गिलाउम ने बताया, वैसे भी इसे कॉल करने का अच्छा अभ्यास है। यदि बाद में, आप अपनी स्ट्रीम को किसी अन्य कार्यान्वयन के साथ प्रतिस्थापित करते हैं जो इसका उपयोग करता है, तो आपको खेद होगा।

ओएस के आधार पर, फ्लश() ओएस को डेटा को बल देने के लिए मजबूर नहीं करता है।

और

फ्लश() FileOutputStream पर कुछ नहीं करता है। यह केवल buffered धाराओं पर उपयोगी है।

और close() की जावाडोक से, बस नोट करने के लिए आप धारा फ्लश करने के लिए यदि आप इसे तुरंत बाद बंद कर रहे हैं नहीं है।

स्ट्रीम को बंद करें, इसे पहले फ़्लश करें। एक बार स्ट्रीम बंद हो जाने के बाद, आगे लिखें() या फ्लश() आमंत्रण IOException को फेंकने का कारण बनेंगे। हालांकि, पहले से बंद स्ट्रीम को बंद करना कोई प्रभाव नहीं पड़ता है।

संबंधित:
FileOutputStream.close is really slow when writing large file
flush in java.io.FileWriter

+0

लेकिन InputStream और outputstream इसका इस्तेमाल होता है? या यह कॉल करने के लिए व्यर्थ है? – Warpzit

+0

मुझे लगता है कि buffered धाराओं का उपयोग नहीं करते समय यह व्यर्थ है। ओएस और एचडब्ल्यू अंतर्निहित –

+0

के आधार पर गंतव्य एएसएपी पर बफर नहीं किया जाना चाहिए तो फ़ाइलआउटपुटस्ट्रीम का इसका कोई उपयोग नहीं है और यह इनपुटस्ट्रीम के साथ भी जाता है? – Warpzit

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