मेरे पास एक एपीआई कॉल है जो बाइट सरणी देता है। मैं वर्तमान में परिणाम को बाइट सरणी में स्ट्रीम करता हूं, फिर सुनिश्चित करें कि चेकसम मिलान करें और फिर फ़ाइल में ByteArrayOutputStream लिखें। कोड इस तरह कुछ है और यह बहुत अच्छी तरह से काम करता है।फ़ाइल में संभावित रूप से विशाल इनपुटस्ट्रीम कैसे लिखें?
String path = "file.txt";
ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
byteBuffer.write(buffer, 0, len);
}
FileOutputStream stream = new FileOutputStream(path);
stream.write(byteBuffer.toByteArray());
मेरी चिंता का विषय मैं InputStream से परिणाम संभावित एंड्रॉयड में ढेर आकार से भी बड़ा हो सकता है कि और मैं OutOfMemory अपवाद हो सकता है अगर पूरे बाइट सरणी स्मृति में है। इनपुट में स्ट्रीम करने के लिए इनपुटस्ट्रीम लिखने का सबसे शानदार तरीका क्या है, जैसे बाइट सरणी ढेर आकार से कभी बड़ा नहीं है?
द्वारा सजाया गया है, तो आप मेरी चिंता का सुझाव अप्रासंगिक है? – JoeLallouz
बस 'ByteArrayOutputStream' के उपयोग को खत्म करें। (मैंने इसे गलत पढ़ा .. मेरा बिल्कुल उपयोग है?) –