Java-I/O框架
流的概念
流的分类
字节流
字节流的父类(抽象类):
InputStream:字节输入流
1
2
3
4
5public int read(){}
public int read(byte[] b){}
public int read(byte[] b,int off,int len){}OutputStream:字节输出流
1
2
3
4
5public void write(int n){}
public void write(byte b){}
public void write(byte b,int off,int len){}
文件字节流
FileInputStream:文件字节输入流
1
public int read(byte[] b) //从流中读取多个字节,将读到内容存入b数组,返回实际读到的字节数;如果达到文件的尾部,则返回-1。
FileOutputStream:文件字节输出流
1
public void write(byte[] b) //一次写多个字节,将b数组中所有字节,写入输出流。
文件缓冲流
缓冲流:BufferedInputStream/BufferedOutputStream
提高IO效率,减少访问磁盘的次数
数据存储在缓冲区中,flush是将缓冲区的内容写入文件中,也可以直接close
对象流
对象流:ObjectOutputStream/BufferedIntputStream
增强了缓冲区功能
增强了读写8种基本数据类型和字符串功能
增强了读写对象的功能:
1
readObject() //从流中读取一个对象
1
writeObject(Object obj) //向流中写入一个对象
使用流传输对象的过程称为序列化、反序列化
序列化和反序列化:
定义:
序列化:Java序列化就是指把Java对象转换为字节序列的过程。
反序列化:Java反序列化就是指把字节序列恢复为Java对象的过程。
作用:
序列化:在传递和保存对象时.保证对象的完整性和可传递性。对象转换为有序字节流,以便在网络上传输或者保存在本地文件中。
反序列化:根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。
编码方式
字符编码
ISO-8859-1 收录除ASCII外,还包括修、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。
UTF-8 针对Unicode码表的可变长度字符编码
GB2312 简体中文
GBK 简体中文、扩充
BIG5台湾,繁体中文
字符流
字符流的父类(抽象类)
Reader: 字符输入流
1
public int read(){}
1
public int read(char[] c){}
1
public int read(char[] b,int off,int len){}
Writer: 字符输出流
1
public void write(int n){}
1
public void write(String str){}
1
public void write(char[] c){}
文件字符流
FileReader:
1
public int read(char[] c) //从流中读取多个字符,将读到内容存入c数组,返回实际读到的字符数;如果达到文件的尾部,则返回-1。
FileWriter:
1
public void write(String str) //一次写多个字符,将b数组中所有字符,写入输出流。
打印流
- PrintWriter:
- 封装了print() /println() 方法,支持写入后换行。
- 支持数据原样打印
- PrintWriter:
转换流
- 桥转换流: InputStreamReader/0utputStreamWriter
- 可将字节流转换为字符流。
- 可设置字符的编码方式。
- 桥转换流: InputStreamReader/0utputStreamWriter
File类
File类
概念:代表物理盘符中的一个文件或者文件夹。
方法:
1
2
3
4
5
6
7
8
9
10
11
12createNewFile() //创建一个新文件
mkdir() //创建一个新目录
delete() //删除文件或空目录
exists() //判断Pile对象所对象所代表的对象是否存在
getAbsolutePath() // 获取文件的绝对路径
getName() //取得名字
getParent() //获取文件/ 目录所在的目录
isDirectory() //是否是 目录
isFile() //是否是文件
length() //获得文件的长度
listFiles() //列出目录中的所有内容
renameTo() //修改文件名为
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 冰咖啡の博客!
评论