一、缓冲流:
必须要结合节点流才能使用处理流。
1.文件字节流:
BufferedInputStream/BufferedOutputStream;这两个流是缓冲字节流,通过内部缓存数组来提高操作流的效率。
(1)BuferedInputStream:
该类实现缓冲的输出流。在创建BufferedInputStream时,会创建一个内部缓冲区数组
构造方法:
1)BufferedInputStream(InputStream in):创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。
2)BufferedOutputStream(InputStream in, int size):创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。
常用方法:
1)read():参见 InputStream 的 read 方法的常规协定。
2)read(byte[] b, int off, int len): 从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。
3)close():关闭此输入流并释放与该流关联的所有系统资源。
(2)BufferedOutputStream:
该类实现缓冲的输出流。
构造方法:
1)BufferedOutputStream(OutputStream out): 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
2)BufferedOutputStream(OutputStream out, int size):创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。
常用方法:
1)write(int b):将指定的字节写入此缓冲的输出流。
2)write(byte[] b, int off, int len): 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此缓冲的输出流。
3)flush():刷新此缓冲的输出流。
4)close():关闭此输出流并释放与此流有关的所有系统资源。
(3)使用缓冲字节流实现文件的复制:
缓冲流对文件数据的读写效率更高;字节流可以复制任何文件数据。
1)在关闭流时,应该先关闭最外层的包装流,即“后开的先关闭”。
2) 缓存区的大小默认是8192字节,也可以使用其它的构造方法自己指定大小。
代码截图 结果2.文件字符流:
BufferedReader / BufferedWriter:字符流增加了缓存机制,大大提高了读写文本文件的效率;readLine();方法在处理文本时,是按行读取的方法。
(1)BufferedReader:
从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取;readLine()方法是特有的方法。
构造方法:
1)BufferedReader(Reader in): 创建一个使用默认大小输入缓冲区的缓冲字符输入流。
2)BufferedReader(Reader in, int sz): 创建一个使用指定大小输入缓冲区的缓冲字符输入流。
常用方法:
1)readLine(): 读取一个文本行。
2)read(char[] cbuf, int off, int len):将字符读入数组的某一部分。
3)close():关闭该流并释放与之关联的所有资源。
4)flush():刷新此缓冲的输出流。
(2)BufferedWriter:
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
构造方法:
1)BufferedWriter(Writer out):创建一个使用默认大小输出缓冲区的缓冲字符输出流。
2)BufferedWriter(Writer out, int sz):创建一个使用给定大小输出缓冲区的新缓冲字符输出流。
常用方法:
1)write(char[] cbuf, int off, int len):写入字符数组的某一部分。
2)write(String s, int off, int len): 写入字符串的某一部分。
3)flush():刷新该流的缓冲。
4)newLine():写入一个换行分隔符。
5)close():关闭此流,但要先刷新它。
(3)使用缓冲字符流实现文本文件的复制:
代码截图 结果二、转换流:
用来实现将字节流转化成字符流;属于处理流;
(1)InputStreamReader:
将InputStream转换为Reader;InputStreamReader 是字节流通向字符流的桥梁。
构造方法:
1)InputStreamReader(InputStream in):创建一个使用默认字符集的InputStreamReader。
2)InputStreamReader(InputStream in, Charset cs): 创建使用给定字符集的 InputStreamReader。
常用方法:
1)read(): 读取单个字符。
2)read(char[] cbuf, int offset, int length): 将字符读入数组中的某一部分。
3)close():关闭该流并释放与之关联的所有资源。
(2)OutputStreamWriter:
将OutputStream转换为Writer;OutputStreamWriter 是字符流通向字节流的桥梁。
构造方法:
1)OutputStreamWriter(OutputStream out):创建使用默认字符编码的 OutputStreamWriter。
2)OutputStreamWriter(OutputStream out, Charset cs):创建使用给定字符集的 OutputStreamWriter。
常用方法:
1)write(String str, int off, int len):写入字符串的某一部分。
2)write(char[] cbuf, int off, int len):写入字符数组的某一部分。
3)flush():刷新该流的缓冲。
4)close():关闭此流,但要先刷新它。
(3)使用转换流:
代码截图 结果三、打印流和数据流:
1.打印流:
(1)PrintStream:
1)PrintStream的输出功能非常强大,通常需要输出文本内容,都可以将输出流包装成 PrintStream 后进行输出。
2)System.out 就是 PrintStream 的一个实例,代表显示器。
(2)PrintWriter:
1)PrintStream 的对应字符流,功能相同,方法对应。
2)复制文件时可以使用PrintWriter代替BufferedWriter完成,更简单。
代码截图2.数据流:
(1)DataInputStream / DataOutputStream:
1) 提供了可以存取所有 Java 基础类型数据(如:int,double等)和 String 的方法。
代码截图
网友评论