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);
Для большинства входных потоков также имеется выходной поток. Вы можете определить свои собственные потоки для чтения / записи специальных вещей, и есть сложные потоки для чтения сложных вещей (например, есть потоки для чтения / записи в формате ZIP).