📘 Module 9: File Handling in Java
I/O Streams in Java
🔷 1. I/O Streams क्या होते हैं?
📌 Definition:
Java I/O (Input/Output) Streams का मतलब है – किसी source (जैसे keyboard, file) से data पढ़ना (input) और किसी destination (जैसे console, file) में data लिखना (output)।
Java में stream एक continuous data flow को represent करता है — जैसे पानी की धारा (stream)।
🔁 दो प्रकार के Stream:
Stream Type | Description | Example Classes |
---|---|---|
Byte Streams | Binary data (image, file) | InputStream , OutputStream , FileInputStream |
Character Streams | Text data (char, string) | Reader , Writer , FileReader , FileWriter |
🧭 Stream Hierarchy Diagram:
java.lang.Object
└── java.io.InputStream ← Byte Input
├── FileInputStream
├── BufferedInputStream
└── DataInputStream
└── java.io.OutputStream ← Byte Output
├── FileOutputStream
├── BufferedOutputStream
└── DataOutputStream
└── java.io.Reader ← Char Input
├── FileReader
└── BufferedReader
└── java.io.Writer ← Char Output
├── FileWriter
└── BufferedWriter
✅ 2. Byte Streams
🔹 Use: Binary file read/write (image, PDF, video)
🔹 Example: FileInputStream
import java.io.FileInputStream;
public class ByteRead {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("file.bin")) {
int data;
while ((data = fis.read()) != -1) {
System.out.print((char) data);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
✅ 3. Character Streams
🔹 Use: Text file read/write
🔹 Example: FileReader & FileWriter
import java.io.FileWriter;
public class CharWrite {
public static void main(String[] args) {
try (FileWriter fw = new FileWriter("text.txt")) {
fw.write("Hello, Java Streams!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.FileReader;
public class CharRead {
public static void main(String[] args) {
try (FileReader fr = new FileReader("text.txt")) {
int ch;
while ((ch = fr.read()) != -1) {
System.out.print((char) ch);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
✅ 4. Buffered Streams
Speed और performance बढ़ाने के लिए Java buffered stream देता है।
🔹 Example: BufferedReader, BufferedWriter
BufferedReader br = new BufferedReader(new FileReader("text.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("text.txt"));
✅ 5. Data Streams – Primitive Types Read/Write
DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.bin"));
dos.writeInt(100);
dos.writeUTF("Hello");
DataInputStream dis = new DataInputStream(new FileInputStream("data.bin"));
int x = dis.readInt();
String s = dis.readUTF();
📘 Summary Table
Type | Input Class | Output Class | Use |
---|---|---|---|
Byte | FileInputStream | FileOutputStream | Binary files |
Char | FileReader | FileWriter | Text files |
Buffered | BufferedReader | BufferedWriter | Fast I/O |
Data | DataInputStream | DataOutputStream | Primitives |
Object | ObjectInputStream | ObjectOutputStream | Serialization |
🧪 Practice Assignments:
- एक text file में कुछ text लिखिए और उसे character stream से पढ़िए
- Binary file (image) को byte stream से read/write कीजिए
- BufferedWriter का use करके fast writing कीजिए
- DataOutputStream से integer, float और string एक binary file में store कीजिए
📘 Interview में पूछे जाने वाले सवाल:
- Byte और Character stream में क्या फ़र्क है?
- BufferedReader क्यों use करते हैं?
- FileReader vs FileInputStream?
read()
method क्या return करता है?- try-with-resources stream में कैसे helpful है?
Comments