第十周课程总结

第十周课程总结

一、字节流与字节流

程序中数据都是以流的方式传输和保存的,程序需要输出和输入时的关系如下图所示:

在java.io包中流的操作主要有字节流和字符流两大类,两类都有输入和输出操作。在字节流中输出数据主要使用
OutputStream类完成,输入使用InputStream类,在字符流中输出主要是使用Writer类完成,输入主要是使用Reader类完成。

在java中io的文件操作流程如下:

1、使用File类打开一个文件
2、通过字节流或字符流的子类指定输出的位置
3、进行读写/操作
4、关闭输入/输出

字节流

在字节流中输出数据主要使用OutputStream类完成,输入使用InputStream类
字节输入流:

InputStream 类及其子类的对象表示一个字节输入流。
InputStream 类的常用子类如下。
ByteArrayInputStream 类:将字节数组转换为字节输入流,从中读取字节。
FileInputStream 类:从文件中读取数据。
PipedInputStream 类:连接到一个 PipedOutputStream(管道输出流)。
SequenceInputStream 类:将多个字节输入流串联成一个字节输入流。
ObjectInputStream 类:将对象反序列化。

字节输出流:

OutputStream 类及其子类的对象表示一个字节输出流。OutputStream 类的常用子类如下。
ByteArrayOutputStream 类:向内存缓冲区的字节数组中写数据。
FileOutputStream 类:向文件中写数据。
PipedOutputStream 类:连接到一个 PipedlntputStream(管道输入流)。
ObjectOutputStream 类:将对象序列化。

字符流

在字符流中输出主要是使用Writer类完成,输入主要是使用Reader类
字符输入流:

Reader 类的常用子类如下:
CharArrayReader 类:将字符数组转换为字符输入流,从中读取字符。
StringReader 类:将字符串转换为字符输入流,从中读取字符。
BufferedReader 类:为其他字符输入流提供读缓冲区。
PipedReader 类:连接到一个 PipedWriter。
InputStreamReader 类:将字节输入流转换为字符输入流,可以指定字符编码。

字节输出流:

Writer 类的常用子类如下。
CharArrayWriter 类:向内存缓冲区的字符数组写数据。
StringWriter 类:向内存缓冲区的字符串(StringBuffer)写数据。
BufferedWriter 类:为其他字符输出流提供写缓冲区。
PipedWriter 类:连接到一个 PipedReader。
OutputStreamReader 类:将字节输出流转换为字符输出流,可以指定字符编码

二、转换流

在文件操作中,内存中的字符数据需要通过OutputStreamWriter变为字节流才能保存在文件中,读取时需要将读入的字节流通过InputStreamReader变为字符流

三、管道流

管道流的主要作用是可以进行两个线程间的通信。
管道输出流PipedOutputStream
管道输入流PipedInputStream

四、打印流

在整个IO包中,打印流是输出信息最方便的类,主要包含字节打印流(PrintStream)和字符打印流(PrintWriter)。打印流提供了非常方便的打印功能,可以打印任何的数据类型,如小数、整数、字符串等。


打印流格式化输出

字符 描述
%s 表示内容为字符串
%d 表示内容为正数
%f 表示内容为小数
%c 表示内容为字符
原文地址:https://www.cnblogs.com/caoe666/p/11782906.html