1、File类
File类定义了一些与平台无关的方法来操作文件,也可以通过调用File类中的方法来实现创建,删除,重命名文件等操作;File类的对象 主要用来获取文件本身的一些信息;如文件所在的目录,文件的长度,文件的读写权限等 ;
1、File类常用的方法
exists():判断文件或者文件目录是否存在,返回一个boolean值
length():返回文件中的字节数
isFile():判断是否为文件
isDirectory:判断是否为文件目录
listFile():返回当前目录下的文件目录或文件,不返回文件目录中的子类,返回值为File类型的数组
creatsNewFile当文件存在时,返回false,否则返回true,并创建此文件
mkdir():创建一个目录
mkdirs():创建一个目录,并创建它的一个子目录
delete():删除当前文件或者文件目录
2、字节输入流,输出流
InputStream是所有字节输入流的父类,是个抽象类,凡是后缀为InputStream的都是字节输入流
OutputStream是所有字节输出流的父类,是个抽象类,凡是后缀为OutputStream的都是字节输出流
文件字节流:
输入流:FileInputStream
输出流:FileOutoutStream
在完成字节输入输出后需要手动关闭流,使用close方法,否则会占内存;
文件字符流:
输入流:FileReader
输出流:FileWriter
高效流:此类是将读取的文件缓存到内存中,然后再Close时再一起放入硬盘中存储,可以大大提高在进行文件复制时的速度
高效字节流
输入:BufferedInputStream 构造参数中需要加入一个InputStream;
输出:BufferedOutputStream 构造参数中需要加入一个OutputStream;
高效字符流
输入:BufferedInputStream 构造参数中需要加入一个Reader;
输出:BufferedOutputStream 构造参数中需要加入一个Writer;
序列化流:
-
把内存中的Java对象 写入到存储介质(硬盘 文件) 称为序列化 写出去
-
把文件中数据恢复成内存对象 反序列化 读进来
-
被序列化的类型要实现 Serializable接口 才能被序列化; Serializable是一个标记接口 给JVM看的
-
序列化注意点
-
反序列化对象的时候并未调构造方法
-
类型中所有的成员变量类型 都要实现Serializable接口 对象才可以被序列化
-
ObjectOutputStream:输入
ObjectInputStream:输出
Serializable:类序列化的类需要继承Serializable才能被序列化 Serializable是一个标记接口
工具类
Propersies 用来读取配置文件的信息,内含一个方法getProperty 输入需要配置的名称,可以返回具体内容,比如配置文件内有一条String类 name=123
当你输入getProperty(name)时就会返回123