2012-01-24 8 views
6

काम नहीं कर रहा थाCharBuffer.put() फ़ंक्शन के साथ कुछ स्ट्रिंग्स डालने का प्रयास करें लेकिन बफर खाली छोड़ दिया गया है।CharBuffer.put()

मेरी कोड:

CharBuffer charBuf = CharBuffer.allocate(1000); 
for (int i = 0; i < 10; i++) 
{ 
    String text = "testing" + i + "\n"; 
    charBuf.put(text); 
} 
System.out.println(charBuf); 

मैं allocate(1000) के बाद clear() या rewind() के साथ प्रयोग करने की कोशिश की लेकिन वह परिणाम नहीं बदला।

उत्तर

2

आप इसे रिवाइंड करना चाहिए के बाद आप वस्तुओं में डाल दिया, कोशिश इस

CharBuffer charBuf = CharBuffer.allocate(1000); 
for (int i = 0; i < 10; i++) 
{ 
    String text = "testing" + i + "\n"; 
    charBuf.put(text); 
} 
charBuf.rewind(); 
System.out.println(charBuf); 
3

सही पाश के बाद rewind() के लिए एक कॉल जोड़ें।

3

इस प्रयास करें:

CharBuffer charBuf = CharBuffer.allocate(1000); 
for (int i = 0; i < 10; i++) 
{ 
    String text = "testing" + i + "\n"; 
    charBuf.put(text); 
} 
charBuf.rewind(); 
System.out.println(charBuf); 

विस्तार से वंचित हो रहे है कि लेखन लिखा डेटा के अंत करने के लिए वर्तमान सूचक ले जाता है, इसलिए जब आप इसे बाहर प्रिंट कर रहे हैं, यह वर्तमान सूचक पर शुरू है , जिसमें कुछ भी लिखा नहीं है।

3

आपको बफर से पढ़ने से पहले flip() बफर की आवश्यकता होगी। बफर से डेटा पढ़ने से पहले flip() विधि को कॉल करने की आवश्यकता है। जब flip() विधि कहा जाता है तो सीमा वर्तमान स्थिति पर सेट की जाती है, और स्थिति 0 तक होती है। उदा।

CharBuffer charBuf = CharBuffer.allocate(1000); 
for (int i = 0; i < 10; i++) 
{ 
    String text = "testing" + i + "\n"; 
    charBuf.put(text); 
} 
charBuf.flip(); 
System.out.println(charBuf); 

उपर्युक्त केवल बफर में वर्णों को प्रिंट करेगा और बफर में अनदेखी जगह नहीं।