InputStream का उपयोग पढ़ने के लिए किया जाता है, लिखने के लिए OutputStream। वे सज्जाकार के रूप में एक दूसरे से जुड़े हुए हैं, ताकि आप सभी विभिन्न प्रकार के स्रोतों से सभी विभिन्न प्रकार के डेटा को पढ़ / लिख सकें।
उदाहरण के लिए, आप किसी फ़ाइल में आदिम डेटा लिख सकते हैं:
File file = new File("C:/text.bin");
file.createNewFile();
DataOutputStream stream = new DataOutputStream(new FileOutputStream(file));
stream.writeBoolean(true);
stream.writeInt(1234);
stream.close();
लिखित सामग्री को पढ़ने के लिए:
File file = new File("C:/text.bin");
DataInputStream stream = new DataInputStream(new FileInputStream(file));
boolean isTrue = stream.readBoolean();
int value = stream.readInt();
stream.close();
System.out.printlin(isTrue + " " + value);
आप पठन / लेखन को बढ़ाने के लिए अन्य प्रकार की धाराओं का उपयोग कर सकते हैं। उदाहरण के लिए, आप दक्षता के लिए एक बफर शुरू कर सकते हैं:
DataInputStream stream = new DataInputStream(
new BufferedInputStream(new FileInputStream(file)));
आप अन्य डेटा जैसे ऑब्जेक्ट लिख सकते हैं:
MyClass myObject = new MyClass(); // MyClass have to implement Serializable
ObjectOutputStream stream = new ObjectOutputStream(
new FileOutputStream("C:/text.obj"));
stream.writeObject(myObject);
stream.close();
आप अन्य विभिन्न इनपुट स्रोतों से पढ़ सकते हैं:
byte[] test = new byte[] {0, 0, 1, 0, 0, 0, 1, 1, 8, 9};
DataInputStream stream = new DataInputStream(new ByteArrayInputStream(test));
int value0 = stream.readInt();
int value1 = stream.readInt();
byte value2 = stream.readByte();
byte value3 = stream.readByte();
stream.close();
System.out.println(value0 + " " + value1 + " " + value2 + " " + value3);
अधिकांश इनपुट स्ट्रीम के लिए आउटपुट स्ट्रीम भी है। आप विशेष चीजों को पढ़ने / लिखने के लिए अपनी खुद की धाराओं को परिभाषित कर सकते हैं और जटिल चीजों को पढ़ने के लिए जटिल धाराएं हैं (उदाहरण के लिए ज़िप प्रारूप को पढ़ने / लिखने के लिए धाराएं हैं)।