Avatar ·

InputStream को byte[] ऐरे में कैसे बदलें Java में? सभी तरीके

सभी को नमस्ते! मैं Java में नया हूँ और मुझे इस समस्या का सामना करना पड़ा: मुझे InputStream से सभी डेटा पढ़ना है (उदाहरण के लिए, फ़ाइल से या HTTP-रिस्पॉन्स से) और इसे byte[] ऐरे के रूप में प्राप्त करना है। लेकिन मुझे नहीं पता कि इसे सही तरीके से कैसे किया जाए।

यहाँ मैंने क्या प्रयास किया:

InputStream input = new FileInputStream("data.bin");
byte[] data = ??? // बाइट ऐरे कैसे प्राप्त करें?

समस्या यह है कि InputStream मुझे पहले से डेटा का आकार नहीं बताता। available() मेथड पूरा आकार नहीं लौटाती, बल्कि केवल वही लौटाती है जो बिना ब्लॉक किए पढ़ने के लिए उपलब्ध है। मैंने लूप में पढ़ने की कोशिश की, लेकिन कोड बेकार हो जाता है और अक्सर टूट जाता है।

मैंने ByteArrayOutputStream के बारे में पढ़ा, लेकिन समझ नहीं आता कि इसे सही तरीके से कैसे उपयोग करूं। मैंने readAllBytes() के बारे में भी सुना है