60 likes | 156 Views
Files and I/O. CSC1351. Input. Reader - based on chars BufferedReader - wraps a reader String readLine() FileReader - opens files for reading StringReader - reads from a string InputStreamReader - wraps in input stream InputStream - based on bytes
E N D
Files and I/O CSC1351
Input • Reader - based on chars • BufferedReader - wraps a reader • String readLine() • FileReader - opens files for reading • StringReader - reads from a string • InputStreamReader - wraps in input stream • InputStream - based on bytes • BufferedInputStream - wraps an input stream • FileInputStream - opens files for reading • ObjectInputStream - read whole objects • ByteArrayInputStream - read from a byte array
Output • Writer • FileWriter - create / append to files • StringWriter - create strings • BufferedWriter - wrapper for a writer • PrintWriter - provides println() • OutputStreamWriter - write to a stream • OutputStream • FileOutputStream - create / append to files • ByteArrayOutputStream - create a byte array • BufferedOutputStream - wraper for a stream • PrintStream - provides println() • ObjectOutputStream - write whole objects
Making your own • javap java.io.Reader | grep abstract • int read(char[], int, int); • void close(); • javap java.io.InputStream | grep abstract • int read(); • javap java.io.Writer | grep abstract • void write(char[], int, int) • void flush(); • void close(); • javap javai.io.OutputStream | grep abstract • void write(int);
import java.io.OutputStream; import java.io.PrintStream; public class NullOutputStream extends OutputStream { public void write(int a) {} public static void main(String[] args) { NullOutputStream nout = new NullOutputStream(); PrintStream ps = new PrintStream(nout); ps.println("Hello, world."); } } NullOutputStream
import java.io.OutputStream; import java.io.PrintStream; public class CapOutputStream extends OutputStream { public void write(int a) { char c = (char)a; System.out.write(Character.toUpperCase(c)); } public static void main(String[] args) { CapOutputStream cout = new CapOutputStream(); PrintStream ps = new PrintStream(cout); ps.println("Hello, world."); } } CapOutputStream