Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.io.FileInputStream;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Main {

    public static void main(String[] args) throws Exception {

        InputStream in = new FileInputStream("test.txt");
        OutputStream out = System.out;

        PrintableOutputStream pout = new PrintableOutputStream(out);
        for (int c = in.read(); c != -1; c = in.read()) {
            pout.write(c);
        }
        out.close();
    }
}

class PrintableOutputStream extends FilterOutputStream {

    public PrintableOutputStream(OutputStream out) {
        super(out);
    }

    public void write(int b) throws IOException {

        // carriage return, linefeed, and tab
        if (b == '\n' || b == '\r' || b == '\t')
            out.write(b);
        // non-printing characters
        else if (b < 32 || b > 126)
            out.write('?');
        // printing, ASCII characters
        else
            out.write(b);
    }

    public void write(byte[] data, int offset, int length) throws IOException {
        for (int i = offset; i < offset + length; i++) {
            this.write(data[i]);
        }
    }
}