Java Input and Output Operations
Java Input and Output Operations
Java's Input and Output (I/O) system enables communication between a program and the external world, such as reading input from a user, files, or other sources and outputting information to the console or files. The java.io package provides a comprehensive set of classes for handling I/O operations.
1. Input Operations
Input operations allow you to read data from external sources, such as the keyboard, files, or network streams. Below are common ways to handle input in Java:
Reading Input from Console
Class Used: Scanner (from java.util package)
Example:
import java.util.Scanner;
public class ConsoleInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter your name: ");
String studentname = scanner.nextLine(); // Captures an entire line of input
System.out.print("Enter your age: ");
int studentage = scanner.nextInt(); // Retrieves an integer from input
System.out.println("Name: " + name + ", Age: " + age);
scanner.close();
}
}
Explanation:
- nextLine() reads a full line of text.
- nextInt() reads an integer.
- Always close the Scanner object to free resources.
2. Output Operations
Output operations enable writing data to external destinations, such as the console or a file.
Writing Output to Console
Class Used: System.out
Example:
public class ConsoleOutputExample {
public static void main(String[] args) {
System.out.println("Hello, World!"); // Displays a message followed by a newline
System.out.print("This is a test."); // Prints without adding a newline
System.out.printf("Formatted number: %.2f", 123.456); // Outputs a formatted number
}
}
Explanation:
- println() appends a newline after displaying the output.
- print() keeps the output on the same line without adding a newline.
- printf() is used for formatted output.
Writing Output to a File
Class Used: FileWriter and BufferedWriter
Example:
import java.io.*;
public class FileOutputExample {
public static void main(String[] args) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) { // Uses a buffered writer for file output
writer.write("This is a test message.");
writer.newLine(); // Adds a new line
writer.write("File writing in Java is simple!");
} catch (IOException e) {
System.out.println("File writing error: " + e.getMessage());
}
}
}
Explanation:
- FileWriter writes character-based data to a file.
- BufferedWriter enhances performance by buffering data before writing to a file.
3. Advanced I/O Operations
Java also supports advanced I/O through classes like DataInputStream, DataOutputStream, ObjectInputStream, and ObjectOutputStream for handling primitive data types or objects.
Example: Writing and Reading Binary Data
import java.io.*;
public class BinaryIOExample {
public static void main(String[] args) {
// Writing binary data
try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.bin"))) { // Writes binary data to a file
dos.writeInt(42); // Writes an integer
dos.writeDouble(3.14159); // Writes a double
} catch (IOException e) {
System.out.println("Error occurred while writing binary data: " + e.getMessage());
}
// Reading binary data
try (DataInputStream dis = new DataInputStream(new FileInputStream("data.bin"))) { // Reads binary data from a file
int number = dis.readInt(); // Reads an integer
double value = dis.readDouble(); // Reads a double
System.out.println("Number: " + number + ", Value: " + value);
} catch (IOException e) {
System.out.println("Error reading binary data: " + e.getMessage());
}
}
}
Explanation:
- DataOutputStream and DataInputStream handle primitive data types in binary format.
- Files generated by this method are not human-readable.
Summary of Common I/O Classes
| Class Name | Purpose |
|---|---|
Scanner | Reading input from console or files |
BufferedReader | Efficient reading of text data |
FileReader | Reading character-based data from files |
FileWriter | Writing character-based data to files |
DataInputStream | Reading primitive data in binary form |
DataOutputStream | Writing primitive data in binary form |
ObjectInputStream | Reading serialized objects |
ObjectOutputStream | Writing serialized objects |
Prefer Learning by Watching?
Watch these YouTube tutorials to understand JAVA Tutorial visually:
What You'll Learn:
- 📌 Java Tutorial For Beginners | Input & Output Streams In Java | IO Streams In Java | SimpliCode
- 📌 Java - Input & Output Streams