一 字节流与字符流
(1)简述
File类实现了文件自身的处理操作,但并未规定其文件内容的操作,而要想实现文件内容的操作,则必须通过流的操作。
流(Stream)主要指的是数据的处理方式,以及目标的内容的处理机制,所有的流都分为输入流和输出流两种方式。在Java.io包中,针对输入流和输出流分为两种类型:
- 字节操作流:OutputStream(字节输出流) InputStream(字节输入流)
- 字符操作流:Writer(字符输出流) Reader(字符输入流)
不管使用哪一种流操作,它流程上本质上是一致的。
通过File类设定要操作的文件路径(针对于文件流而言)
通过字节流或者字符流的子类为父类进行对象实例化处理。
进行读或者写的流操作。
在操作完毕后要进行关闭 close。
二 字节流
(1)字节输出流 OutputStream
java.io.OutputStream是实现字节输出流的操作类,该类的定义如下:
// public abstract class OutputStream //是一个抽象类 // extends Object //继承于Object类 // implements Closeable, Flushable; //继承了两个接口
继承了两个接口:Closeable和Flushable,Closeable是实现关闭的,Flushable是清除缓冲区的。Closeable继承与AutoCloseable接口。
OutputStream抽象类和方法
NO. |
方法名称 | 类型 | 用途 |
1 | void close() | 方法 | 关闭 |
void flush() | 方法 | 清除缓存 | |
public abstract void write(int b) | 方法 | 输出单个字节数据 | |
public abstract void write( byte[ ] b) | 方法 | 输出全部字节的数据 | |
public abstract void write(byte[ ] b, int off, int len) | 方法 | 输出部分字节数组的数据 | |
方法 |
在整个OutputStream类中write() 方法都是针对字节数据进行处理的。如果要使用这个类,需要使用子类对它实例化。(文件处理可以使用 FileOutputStream子类)
接下来讲FileOutputStream() 类的方法:
FileOutputStream抽象类和方法
NO. |
方法名称 | 类型 | 用途 |
1 | public FileOutputStream(File file) throws FileNotFoundException | 方法 | 设置文件输出流,每次更新文件 |
public FileOutputStream(File file, boolean append) throws FileNorFoundException | 方法 |