代码改变世界

第十周课程总结

2019-11-03 20:08  小小乌龟君  阅读(158)  评论(0编辑  收藏  举报

一.字节流与字符流基本操作

在java.io 包中流的操作主要有字节 流和字符流两大类,两类都有输入和输出操作。
在字节流中输出数据主要使用 OutputStream类完成,输入使的是InputStream类,
在字符流中输出主要是使用Writer类完成,输入主要是使用Reader类完成。
在 Java 中 IO 操作也是有相应步骤的,以文件的操作为例,主要的操作流程如下:
(1)使用File类打开一个文件。
(2)通过字节流或字符流的子类指定输出的位置。
(3)进行读/写操作。
(4)关闭输入/输出。

1.字节流

字节流主要是操作byte类型数据, 以byte数组为准,主要操作类就是 OutpuStream
类和
InputStream类。
1.字节输出流:OutputStream
OutputStream是整个IO包中字节输出流的最大父类,此类的定义如下:

public abstract class OutputStream
extends Object
implements Closeable, Flushable

从以上的定义中可以发现,此类是一个抽象类,如果要想使用此类的话,首先必须通过
子类实例化对象。如果现在要操作的是一个文件,则可以使用FileOutputStream类,
通过向上转型后,可以为OutputStream实例化,在OutputStream类中的主要操作方法。

||||
|:--|:--|:--|:--|
|OutputStream 类的常用方法||||
|序 号 |方法或常量| 类 型 |描 述|
|1 |public void close()throws IOException | 普通|关闭输出流|
|2 |**public void flush()throws lOException | 普通| 刷新缓冲区|
|3 |
public void write(byte[]b) throws IOException | 普通| 将一个 byte 数组写入数据流|
|4 |
public void write (byte[] b, int off, int len) throws | 普通| 将一个指定范围的 byte 数组IOException 写入数据流|
|5 |
public abstract void write(int b) throws IOException **| 普通| 将一个字节数据写入数据流|

1.1 字节输入流:InputStream
既然程序可以利用 OuputSteam 类向文件中写入内容,则也可以通过IapuStream类头文
件中把内容读取进来。InputStream 类的定义如下:

public abstract class InputStream
extends Object
implements Closeable

与 OutputStream 类一样,InputStream 本身也是一个抽象类,必须依靠其子类,如果
现在是从文件中读取,子类肯定是FileInputStream。InputStream类中的主要方法。

||||
|:--|:--|:--|:--|
|InputStream 类的常用方法|||
|序 号 |方法或常量|类 型 |描 述|
|1| public int available()throws IOException |普通 |可以取得输入文件的大小|
|2| public void close()throws IOException |普通|关闭输入流|
|3| public abstract int read() throws IOException |普通|读取内容,以数字的方式读取|
|4| public int read(byte[] b) throws IOException |普通| 将内容读到 byte 数组之中,同时返回读入的个数|

2.字符流

2.1 字符输出流 Writer
Writer 本身是一个字符流的输出类,此类的定义如下:

public abstract class Writer
extends Object
implements Appendable, Closeable, Flushable

此类本身也是一个抽象类,如果要想使用此类,则肯定要使用其子类,此时如果是向文件
中写入内容,应该使用FileWriter的子类。Writer类的常用方法。

||||
|:--|:--|:--|:--|
|Writer 类的常用方法|||
|序 号 |方法或常量|类 型 |描 述|
|1| public abstract void close() throws IOException |普通 |关闭输出流|
|2| public void write(String str) throws IOException |普通|将字符串输出|
|3| public void write(char[] cbuf) throws IOException |普通|将字符数组输出|
|4| public abstract void flush() throws IOException |普通|强制性清空缓存|

FileWriter类的构造方法定义如下:

public FileWriter(File file) throws IOException

2.2 字符输入流:Reader
Writer 本身是一个字符流的输出类,此类的定义如下:

public abstract class Reader
extends Object
implements Readable, Closeable

Reader 类本身也是抽象类,如果现在耍从文件中读取内容,则可以直接使用 FileReader子
类。Reader 类的常用方法。

FileReader的构造方法定义如下:

public FileReader(File file) throws FileNotFoundException

二,字节流与字符流的区别