字节流与字符流
在java.io包中操作 文件内容的主要有两大类:字节流,字符流
- 两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使用的是InputStream在字符流中输出主要是使用Writer类完成,输入主要是使用Reader类完成。
操作流程
- 在JAVA中IO操作也是有相应步骤,以文件操作为例,主要的操作流程如下:
- A、使用File类打开一个文件
- B、通过字节流或字符流的子类,指定输出的位置
- C、进行读/写操作
- D、关闭输入/输出
字节流
- 字节流主要是操作byte类型数据,以byte数组为准, 主要操作类就是OutputStream、InputStream。
- 字节输出流: OutputStream
- 字节输入流: InputStream
OutputStream类的常用方法
No. | 方法或常量 | 类型 | 描述 |
---|---|---|---|
1 | public void close() throws IOException | 普通 | 关闭输出流 |
2 | public void flush() throws IOException | 普通 | 刷新缓冲区 |
3 | public void write(byte[] b) throws IOException | 普通 | 将一个byte数组写入数据流 |
4 | public void write(byte[] b,int off,int len) throws IOException | 普通 | 将一个指定范围的byte数组写入数据流 |
5 | public abstract void write( int b) throws IOException | 普通 | 将一个字节数据写入数据流 |
- 必须使用子类实例化后才能使用
InputStream类的常用方法
No. | 方法或常量 | 类型 | 描述 |
---|---|---|---|
1 | public int available() throws IOException | 普通 | 可以取得输入文件的大小 |
2 | public void close( ) throws IOException | 普通 | 关闭输入流 |
3 | public int read(byte[] b) throws IOException | 普通 | 读取内容,以数字的方式读取 |
4 | public int read(byte[] b) throws IOException | 普通 | 将内容读到byte数组之中,同时返回读入的个数 |
字符流
- 在程序中-一个字符等于2个字节,那么JAVA提供了Reader、Writer两个专门操作字符流的类。
- 字符输出流: Writer
- 字符输入流: Reader
Writer类的常用方法
No. | 方法或常量 | 类型 | 描述 |
---|---|---|---|
1 | public abstract void close() throws IOException | 普通 | 关闭输出流 |
2 | public void write(String str) throws IOException | 普通 | 将字符串输出 |
3 | public abstract void flush( ) throws IOException | 普通 | 将字符数组输出 |
4 | public abstract void flush( ) throws IOException | 普通 | 强制性清空缓存 |
Reader类的常用方法
No. | 方法或常量 | 类型 | 描述 |
---|---|---|---|
1 | public abstract void close() throws IOException | 普通 | 关闭输出流 |
2 | public int read( ) throws IOException | 普通 | 读取单个字符 |
3 | public int read(char[] cbuf) throws IOException | 普通 | 将内容读到字符数组之中,返回读入的长度 |
字节字符转换流
- OutputStreamWriter和InputStreamReader
- OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即:将一个字符流的输出对象变为字节流输出对象。
- InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象。