Java ------- I/O (二)

io 包中的File 类对文件或目录中的属性进行操作,不能从文件中读取数据或往文件中写数据(读文件是把文件中的数据读取到内存中,写文件是把内存中的数据写到文件中。)所以引入了 流。

流: 指一连串流动的字符,是以先进先出的方式发送和接受数据的通道。

流分为输入流和输出流,输入/输出流是相对于计算机内存来说的,如果数据输入到内存,称为输入流,从内存输出则称输出流。

 

在java.io 包中有许多输入/输出流的API,这些输入/输出流类的对象称为流对象。这些流对象也可以将内存中的数据以流的方式读取写入文件。

 构造流对象时往往会和数据源(如文件)联系起来。数据源分为源数据源和目标数据源。输入流关联的是源数据源,输出流关联的是目标数据源。

 

流按照处理数据单可以分为字节流和字符流,

字节流是8 位通用字节流,其基本单位是 字节,字节流的基类是InputStream 类和OutputStream 类,它们是抽象类。

字符流是16 位的Unicode字符流,其单位是Unicode 字符。字符流最适合用来处理字符串和文本,因为他们支持国际上大多数的字符集和语言。字符流的基类是Reader 和 Writer  类,他们也是抽象类。

InputStream 类的常用子类有 FileInputStream , 用于从文件中读取数据

OutStream   类的常用子类有 FileOutStream ,   用于向文件写数据

Reader        类的常用子类为 BufferedReader,接受Reader 对象作为参数,并对其添加字符缓冲器

Writer          类的常用子类为 BufferedWriter,  用于将数据缓冲到字符输出流

 

字符流与字节流相比

1、字符流在操作上使用了缓冲区(内部存储器),而字节流在操作时直接操作文件,不会使用缓冲区

2、这些方法在出现错误时都会抛出IOException 异常

posted on 2020-04-19 22:34  obge  阅读(133)  评论(0编辑  收藏  举报