Subjects

All subjects Django Java Python React Spring Boot JavaScript PHP
Sign Up Free
Question 3 of 10 · File Handling and I/O Operations
Interview question

What are FileReader and FileWriter? How do you use them for text files? FileReader और FileWriter क्या हैं? Text files के लिए कैसे use करते हैं?

Answer

FileReader reads character data from files, while FileWriter writes character data to files. They are character-based streams ideal for text file processing.

import java.io.*;

public class FileReaderWriterDemo {
    public static void main(String[] args) {
        // Writing text to file using FileWriter
        try (FileWriter writer = new FileWriter('output.txt')) {
            writer.write('Line 1: Hello World\n');
            writer.write('Line 2: Java File I/O\n');
            writer.write('Line 3: File Processing\n');
            System.out.println('File written successfully');
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        // Reading text from file using FileReader
        try (FileReader reader = new FileReader('output.txt')) {
            int character;
            StringBuilder content = new StringBuilder();
            while ((character = reader.read()) != -1) {
                content.append((char) character);
            }
            System.out.println('File content:\n' + content.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

// Best Practice: Use try-with-resources
// Automatically closes file, even if exception occurs
try (FileWriter fw = new FileWriter('file.txt')) {
    fw.write('Content');
} catch (IOException e) {
    e.printStackTrace();
}

// Note: FileReader/FileWriter work with default charset
// For specific charset, use InputStreamReader/OutputStreamWriter
FileReader & FileWriter:

FileWriter (Writing):
try (FileWriter fw = new FileWriter('file.txt')) {
    fw.write('Text content');
}

FileReader (Reading):
try (FileReader fr = new FileReader('file.txt')) {
    int ch;
    while ((ch = fr.read()) != -1) {
        System.out.print((char)ch);
    }
}

Benefits:
- Character-based (suitable for text)
- Simple to use
- Automatic close with try-with-resources

Was this answer clear?