2012-12-03 23 views
8

OutputStream.flush() दस्तावेज़ों से।आउटपुटस्ट्रीम की फ्लश विधि कुछ भी नहीं करती है?

यह इस दस्तावेज़ में क्यों है कि OutputStream की फ्लश विधि कुछ समझता है कि यह वास्तव में कुछ करता है? बहुत ज्यादा उलझन।

उत्तर

10

OutputStream एक अमूर्त वर्ग से व्युत्पन्न किया जाना है। यदि आवश्यक हो तो यदि उप-वर्ग अपने स्वयं के कार्यान्वयन प्रदान करेंगे। अन्यथा डिफ़ॉल्ट व्यवहार कुछ भी नहीं करना है।

उदा। ObjectOutputStream.flush()

+1

resonable। लेकिन अभी भी एक अजीब फॉर्मूलेशन दस्तावेज। –

2

OutputStream के लिए कोड एक सार तत्व देखें। व्युत्पन्न उदाहरण को ओवरराइड करना है, अगर इसे फ्लश की आवश्यकता है। उदाहरण के लिए BufferedOutputStream
स्ट्रीम जिनमें कोई बफर नहीं है, को flush() ओवरराइड करने की आवश्यकता नहीं हो सकती है।

+0

को नहीं करना है। यह –

+0

नहीं चुन सकता है जैसे सभी अमूर्त वर्गीकृत चुन सकते हैं, बहुत कार्यान्वित कर सकते हैं या नहीं। – AlexWien

+1

लेकिन आपने ऊपर कहा है, व्युत्पन्न उदाहरण * है *। यह थोड़ा सा है कि मैं असहमत हूं! –

0

टेक्स्ट का पहला भाग flush के सामान्य अनुबंध का वर्णन कर रहा है। OutputStream का विस्तार करने वाले वर्गों से इस अनुबंध का पालन करने की उम्मीद है।

OutputStream एक सार वर्ग है, लेकिन flush का एक डिफ़ॉल्ट कार्यान्वयन प्रदान किया जाता है। जैसा कि वर्णन किया गया है, कार्यान्वयन कुछ भी नहीं करता है।

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

  • कोई संबंधित समस्या नहीं^_^