Java by API/java.io/FilterOutputStream
extends FilterOutputStream
<source lang="java">
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]); } }
}
</source>
FilterOutputStream: write(byte[] b)
<source lang="java">
import java.io.BufferedOutputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { BufferedOutputStream bufferedOutput = new BufferedOutputStream(new FileOutputStream( "yourFile.txt")); bufferedOutput.write("Line one".getBytes()); bufferedOutput.write("\n".getBytes()); bufferedOutput.write(65); bufferedOutput.close(); }
}
</source>