1、File 类
1)创建方式:
File file = new File( " 相对路径 " ); File file = new File( " 父路径 ",“ 子路径 ” );
主方法: 工程下 测试方法: 模块下
2)获取路径:
a . xx.class.getResource("相对路径").getPath() 是在同包下
b . xx.class.getClassLorder().getResource("相对路径").getPath() 是在 src 文件下
3)常用API
File getAbsoluteFile() - 获取绝对路径
boolean exists() - 判断该文件是否存在
boolean isDirectory() - 判断是否是目录
boolean isFile() - 判断是否是文件
boolean createNewFile() - 如果没有,才会创建文件
boolean delete() -删除文件
boolean mkdir() - 创建单层目录
boolean mkdirs() -创建多层目录
String getName() - 获取文件的名字
String getPath() - 获取文件路径名
boolean renameTo(File dest) - 从一个文件移动到另一个文件
String[] list() -列出file所有文件的名字
File[] listFiles() -列出file所有文件的对象
2、I O 流 类
1)字节流 : 做文本文件的复制比较合适
2)缓存字节流:BufferedInputStream / BufferedOutputStream
在磁盘和内存中出现缓存区,记得手动 flush()刷新缓存区,不然可能操作失败。
3)字符流 Reader / Writer
a . 底层字符流 :InputStreamReader / OutputStreamWriter
和字节流差不多,记得手动刷新
可以读取和写入单个字符
b . 缓存字符流:
BufferedReader :第二层可追加编码方式
BufferedReader br = new BufferedReader(new InputStreamReader
(new FileInputStream("xx.txt"),"UTF-8"));
PrintWriter:第一层追加是否自动刷新:碰到 println 触发,否则还是得手动调用
第二层追加编码方式 第三层追加是否追加写入文件
PrintWriter pw = new PrintWriter(new OutputStreamWriter
(new FileOutputStream
("xx.txt",true),"UTF-8"),true);
3、对象流
ObjectInputStream / ObjectOutputStream
序列化: 对象 -> 文件[字节]
实现Serializable接口
关键词: serialVersionUID : 版本序列号 保证类序列版本号一致,这样改变后也不会出错
transient 修饰使不可见
反序列: 文件[字节] -> 对象