OneCompiler

Uppercase and lowercase

53

import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilterReader;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;

// Custom FilterReader to convert all uppercase letters to lowercase
class LowerCaseReader extends FilterReader {

protected LowerCaseReader(Reader in) {
    super(in);
}

@Override
public int read() throws IOException {
    int c = super.read();
    return (c == -1) ? -1 : Character.toLowerCase((char) c);
}

@Override
public int read(char[] cbuf, int off, int len) throws IOException {
    int result = super.read(cbuf, off, len);
    if (result != -1) {
        for (int i = off; i < off + result; i++) {
            cbuf[i] = Character.toLowerCase(cbuf[i]);
        }
    }
    return result;
}

}

public class LowerCaseReaderDemo {
public static void main(String[] args) {
String inputFile = "D:\Users\AniketSatale\Msc-II\SADP-Practical\input.txt";
String outputFile = "D:\Users\AniketSatale\Msc-II\SADP-Practical\Lower.txt";

    try (
            Reader fr = new FileReader(inputFile);
            LowerCaseReader lcr = new LowerCaseReader(fr);
            Writer fw = new FileWriter(outputFile);) {
        char[] buffer = new char[1024];
        int bytesRead;
        while ((bytesRead = lcr.read(buffer)) != -1) {
            fw.write(buffer, 0, bytesRead);
        }
        System.out.println("Conversion completed successfully! Check: " + outputFile);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}