第十周课程总结
一、字节流与字符流
字节流
字符流
区别
二、输出流
OutputStreamWriter类
InputStreamReader类
三、管道流
输出流(PipeOutputStream)
输入流(PipedInputStream)
四、打印流
五、System类对IO的支持
System.out
System.err
System.in
一.字节流与字符流
(1)字节流
字节流主要操作byte类型数据,以byte数组为主,主要操作类就是OutputStream类和InputStream类。
(2)字符流
Java提供了Reader和Write两个专门操作字符流的类
(3)区别
二、转换流
OutputStreamWriter类:Writer的子类,将输出的字符流变成字节流,即将一个字符流的输出对象变为字节流的输出对象。
InputStreamReader类:Reader的子类,将输入的字节流变为字符流,即将一个字节流的输入对象变为字符流的输入对象。
(1)OutputStreamWriter
构造方法
public OutputStreamWriter(OutputStream out)
File f = new File(地址); Writer out = null; out = new OUtputStreamWriter(new FileOutputStream(fa)); out.Writer(内容); out.close();
(2)InputStreamReader
....... File f = new File(地址); Reader reader = null; reader = new InputStreamReader(new FileInputStream(f)); char c[] = new char[1024]; int len = reader.read(c); reader.close(); .......
三、管道流
管道流的主要作用是可以进行两个线程间的通信。
先定义一个管道输入流PipedInputStream对象和管道输出流PipedOutputStream对象,然后将他们关联起来,建立了一条”管道”。
使用conect()方法进行连接
PipeOutputStream输出方法: void write(byte[] b, int off, int len) // 将 len 字节从初始偏移量为 off 的指定 byte 数组写入该管道输出流。 PipeInputStream输入方法:读取文件的方法 //将连接的PipeOutputStream对象实例的输入流的数据,通过read方法,把内容读取到数组中。 int read(byte[] b, int off, int len) //将最多 len 个数据字节从此管道输入流读入 byte 数组。
四、打印流
(1)基本操作
在整个IO包中,打印流是输出信息最方便的类,主要包括字节打印流(PrintStream)和字符打印流(PrintWriter),可以打印任何数据类型,如小数,整数,字符串等。
使用PrintStream输出
...... PrintStream ps = null; ps = new PrintStream(new FileOutputStream(newFile(地址))); ps.print(内容); ps.close();
五、System类对IO的支持
(1)System.out
System.out是PrintStream的对象,在PrintStream中定义了一系列的print()方法和println()方法。
(2)System.err
System.err表示的是错误信息的输出,如果程序出现错误,则可以直接使用System.err进行打印。
(3)System.in
System.in实际上是一个键盘的输入流,其本身是InputStream类型的对象,可以利用此方法从键盘读取数据。
....... InputStream input = System.in; byte b[] = new byte[1024]; int len = input.read(b); ......