InputStream digunakan untuk membaca, OutputStream untuk menulis. Mereka terhubung sebagai dekorator satu sama lain sehingga Anda dapat membaca / menulis semua jenis data yang berbeda dari semua jenis sumber yang berbeda.
Misalnya, Anda dapat menulis data primitif ke file:
File file = new File("C:/text.bin");
file.createNewFile();
DataOutputStream stream = new DataOutputStream(new FileOutputStream(file));
stream.writeBoolean(true);
stream.writeInt(1234);
stream.close();
Untuk membaca konten tertulis:
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);
Anda dapat menggunakan jenis aliran lainnya untuk meningkatkan kemampuan membaca / menulis. Misalnya, Anda dapat memperkenalkan buffer untuk efisiensi:
DataInputStream stream = new DataInputStream(
new BufferedInputStream(new FileInputStream(file)));
Anda dapat menulis data lain seperti objek:
MyClass myObject = new MyClass(); // MyClass have to implement Serializable
ObjectOutputStream stream = new ObjectOutputStream(
new FileOutputStream("C:/text.obj"));
stream.writeObject(myObject);
stream.close();
Anda dapat membaca dari sumber input lain yang berbeda:
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);
Untuk sebagian besar input stream ada juga aliran output. Anda dapat menentukan aliran Anda sendiri untuk membaca / menulis hal-hal khusus dan ada aliran kompleks untuk membaca hal-hal kompleks (misalnya ada Aliran untuk membaca / menulis format ZIP).