The class you’re looking for is DataInputStream
.
📘 DataInputStream
It allows you to read primitive data types (like int
, float
, double
, long
, char
, boolean
, etc.) from an input byte stream in a machine-independent way.
🧠 Why use it?
When you’re reading raw binary data that was written using DataOutputStream
or some binary format — DataInputStream
lets you easily read it back as Java primitives.
Constructor
DataInputStream(InputStream in)
You typically wrap it around another stream like FileInputStream
.
✅ Example
import java.io.*;
public class ReadData {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("data.bin");
DataInputStream dis = new DataInputStream(fis)) {
int number = dis.readInt();
double value = dis.readDouble();
boolean flag = dis.readBoolean();
System.out.println("Int: " + number);
System.out.println("Double: " + value);
System.out.println("Boolean: " + flag);
} catch (IOException e) {
e.printStackTrace();
}
}
}
🔢 Supported Read Methods
readInt()
readDouble()
readFloat()
readBoolean()
readLong()
readChar()
readShort()
readUTF()
(for reading UTF-8 encoded strings)