का उपयोग करके बड़ी फ़ाइलों को लिखना मैं BufferedInputStream
& BufferedOutputStream
का उपयोग करके बड़ी फ़ाइलों (100 एमबी से बड़ा) पढ़ने और लिखने की कोशिश कर रहा हूं। मुझे हीप मेमोरी इश्यू & ओओएम अपवाद मिल रहा है।
कोड लगता है:BufferedOutputStream
BufferedInputStream buffIn = new BufferedInputStream(iStream);
/** iStream is the InputStream object **/
BufferedOutputStream buffOut=new BufferedOutputStream(new FileOutputStream(file));
byte []arr = new byte [1024 * 1024];
int available = -1;
while((available = buffIn.read(arr)) > 0) {
buffOut.write(arr, 0, available);
}
buffOut.flush();
buffOut.close();
मेरा प्रश्न है जब हम का उपयोग BufferedOutputStreeam
यह स्मृति पकड़े तक पूर्ण फ़ाइल बाहर लिखा है है?
BufferedOutputStream
का उपयोग कर बड़ी फ़ाइलों को लिखने का सबसे अच्छा तरीका क्या है?
लूप –
के अंदर फ्लश करने का प्रयास करें जब तक आप इसे फ्लश नहीं करते हैं तब तक यह बफरिंग हो जाता है। जबकि लूप में इसे फ्लश करें। –
@jcomeau_ictx - नहीं, BufferedOutputStream तब तक बफर नहीं करता जब तक आप इसे फ्लश नहीं करते हैं, इसमें एक निश्चित आंतरिक बफर आकार होता है। पीने के दौरान – jtahlborn