主要内容,操作系统的中的文件目录,重点操作文本文件.读取或者生成文本文件.jdk对于io操作的类通常保存在java.io包中.
特点:java中使用java.io.File描述系统中的文件或者目录.可以创建或者删除系统中的文件或者目录,读取文件或者目录的属性(文件名,文件操作权限),无法操作文件中的内容.
在计算机系统中的文件底层本质就是byte序列.对于文件的操作实际上就是操作byte的序列.操作系统中可以使用文件的逻辑路径表示一个文件.通过该逻辑路径访问操作对应的文件,操作系统中使用/(windows和linux中)对逻辑路径进行分隔.
概念:操作系统中文件本质就是byte集合,如果需要操作文件中的内容,需要操作byte集合.jdk提供了字节流操作文件.字节流主要的功能是java.io.InputStream输入流以及java.io.OutputSteram输出流进行定义.
概念:OutputStream的一个子类,提供对于文件操作的API的实现.
概念:由于io属于物理资源,物理资源必须手动释放(调用close方法).需要使用try…finally手动处理物理资源,会影响程序的结构,而且早期提供的close方法不适用于目前的操作系统存在一定的bug.jdk7.0提供了AutoCloseable接口,只要实现了该接口,就可以自动释放物理资源,无需通过finally进行处理
try( //初始化io流的资源 ){
//操作io流
}[catch(异常 e){
//处理异常
}]
概念:底层提供一个缓冲的byte数组,优化字节流的操作.BufferedInputStream(输入流的缓充流),BufferedOutputStream(输出流的缓充流).
概念:字符流专门对文本文件进行操作的流,通过字符流可以快速读取文本文件中的内容或者向文本文件写如字符串.
定义了字符流的基本的功能,可以写如一个字符或者字符串.或者可以读取一个字符
Writer:抽象类,字符流的基本API
Reader:抽象类,字符流的基本API
兼容任意文件只能是字节流
//读入文件:输入流
BIS bis=new BIS(new FIS(文件));
//生成文件:输出流
BOS bos=new BOS(new FOS(文件));//总是创建新的文件
BOS bos=new BOS(new FOS(文件,true));//表示内容采用追加的形式
操作文本文件
//读入文件
FR fr=new FR(文件);
BR br=new BR(new ISR(new FIS(文件),charset));//指定字符编码
//生成文件
FW fw=new FW(文件);
BW br=new BW(new OSW(new FOS(文件,true),charset));
PW pw=new PW(文件);
概念:将实例对象进行流化,目的就是方便在网络中进行传输.一个类的实例如果需要被序列化,那么必须实现Serializable接口.
概念:通过对象的序列化和反序列化可以实现的对象的深克隆.