Languages: Python C C++ Go Java Ruby Rust Perl R ← Full TOC

← Java Index

📁 java.io — File I/O — streams, readers, writers, serialization

Provides classes for system input/output through data streams, serialization, and the file system. For modern code prefer java.nio.file (Files, Path) for file operations, but java.io streams remain essential for all I/O.

Import: import java.io.*; | Docs: Oracle JavaDoc

📋 Classes, Methods & Constants

NameSignatureDescription
Fileclass FileAbstract representation of file/directory path
file.existsboolean exists()True if file/directory exists
file.isFileboolean isFile()True if path is a regular file
file.isDirectoryboolean isDirectory()True if path is a directory
file.lengthlong length()Return file size in bytes
file.listFilesFile[] listFiles()Return array of files in directory
file.mkdirboolean mkdir()Create directory
file.deleteboolean delete()Delete file or empty directory
FileReaderclass FileReader extends InputStreamReaderRead text file character by character
FileWriterclass FileWriter extends OutputStreamWriterWrite text to file
BufferedReaderclass BufferedReaderBuffered character reading — readLine()
br.readLineString readLine() throws IOExceptionRead one line; null at EOF
BufferedWriterclass BufferedWriterBuffered character writing
bw.writevoid write(String s) throws IOExceptionWrite string to buffer
bw.newLinevoid newLine() throws IOExceptionWrite platform-specific line separator
bw.flushvoid flush() throws IOExceptionFlush buffer to underlying stream
PrintWriterclass PrintWriterConvenient writer with print/println/printf
FileInputStreamclass FileInputStreamRead raw bytes from file
FileOutputStreamclass FileOutputStreamWrite raw bytes to file
ByteArrayOutputStreamclass ByteArrayOutputStreamWrite bytes to in-memory buffer
Files.readAllBytesstatic byte[] readAllBytes(Path p)Read entire file as bytes (nio)
Files.readStringstatic String readString(Path p)Read entire file as String (Java 11+, nio)
Files.writeStringstatic Path writeString(Path p, CharSequence cs)Write String to file (Java 11+, nio)
Files.linesstatic Stream<String> lines(Path p)Stream lines of file (nio, Java 8+)
Path.ofstatic Path of(String first, String... more)Create Path from string (nio, Java 11+)
IOExceptionclass IOException extends ExceptionChecked exception for I/O errors

💡 Example Program

Save as ClassName.java (matching the public class name), compile with javac ClassName.java, run with java ClassName.

import java.io.*;
import java.nio.file.*;

public class JavaIODemo {
    public static void main(String[] args) throws IOException {
        // --- Write with PrintWriter (try-with-resources) ---
        Path file = Path.of("students.txt");
        try (PrintWriter pw = new PrintWriter(Files.newBufferedWriter(file))) {
            pw.println("Alice 95");
            pw.println("Bob   87");
            pw.println("Carol 92");
            pw.println("Dave  78");
        }

        // --- Read with BufferedReader ---
        System.out.println("=== BufferedReader ===");
        try (BufferedReader br = Files.newBufferedReader(file)) {
            String line;
            int lineNum = 0;
            while ((line = br.readLine()) != null)
                System.out.printf("  %d: %s%n", ++lineNum, line);
        }

        // --- nio: Files.readString (Java 11+) ---
        String content = Files.readString(file);
        System.out.println("=== readString length: " + content.length() + " chars ===");

        // --- nio: Files.lines stream ---
        System.out.println("=== Lines with score > 90 ===");
        Files.lines(file)
             .filter(l -> {
                 String[] p = l.trim().split("\\s+");
                 return p.length > 1 && Integer.parseInt(p[1]) > 90;
             })
             .forEach(l -> System.out.println("  " + l));

        // --- File metadata ---
        File f = file.toFile();
        System.out.printf("Size: %d bytes  exists=%b%n", f.length(), f.exists());

        Files.delete(file);
        System.out.println("File deleted.");
    }
}
// javac JavaIODemo.java && java JavaIODemo

← java.util  |  🏠 Index  |  java.util.stream →