Avatar ·

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

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

\n\n

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

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

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

\n\n

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