File类:
File类用来表示一个目录或者文件
常用构造器:
常用方法:
// 常用方法:
// 表示的文件或目录是否真的存在?
File f3=new File("C:\\Users\\lx\\Desktop\\JavaSe\\09.txt");
File f4=new File("C:\\Users\\lx\\Desktop\\JavaSe02");
System.out.println(f1.exists());
System.out.println(f2.exists());
System.out.println(f3.exists());
System.out.println(f4.exists());
// 判断是否表示的是文件?
System.out.println(f1.isFile());
System.out.println(f2.isFile());
// 判断是否表示的是目录?
System.out.println(f1.isDirectory());
System.out.println(f2.isDirectory());
// 获取文件或目录信息
// 获取文件名或目录名
System.out.println(f1.getName());
System.out.println(f2.getName());
// 获取文件或目录的路径
System.out.println(f1.getPath());
System.out.println(f2.getPath());
// 获取文件或目录的可读、可写、可执行、是否是隐藏属性信息
System.out.println(f1.canRead());
System.out.println(f1.canWrite());
System.out.println(f1.canExecute());
System.out.println(f1.isHidden());
System.out.println(f2.canRead());
System.out.println(f2.canWrite());
System.out.println(f2.canExecute());
System.out.println(f2.isHidden());
// 获取最后修改时间
System.out.println(new Date(f1.lastModified()));
System.out.println(new Date(f2.lastModified()));
// 获取内容的长度,单位是字节
System.out.println(f1.length());//返回文件中的数据大小
System.out.println(f2.length());//返回文件夹占用的空间,默认4096
IO流:
分类:
从传输方向上分为:输出流、输入流;
从处理单位上分为:字节流、字符流;
从功能上分为:节点流、高级流;
节点流:
字节流:
父类:InputStream、OutputStream
常用实例化子类:FileInputStream、FileOutputStream
字节流可以传送文本、图片、视频、音频等所有种类的文件。
字符流:
父类:Reader、Writer
常用实例化子类:FileReader、FileWriter
字符流只能传输文本类型的文件。
高级流:
转换流:
InputStreamReader、OutputStreamWriter
可以将字节流转化为字符流的流;
// 字节输入流
FileInputStream in=new FileInputStream("C:\\Users\\lx\\Desktop\\b\\22.txt");
// 转换输入流:就是一个字符流
// 首先需要一个字节输入流(节点流)
// 在此基础上转为字符输入流
InputStreamReader reader=new InputStreamReader(in);
缓冲流:
字节缓冲流:BufferedInputStream、BufferedOutputStream
字符缓冲流:BufferedReader、BufferedWriter
默认缓冲区大小:8192字节。
使用缓冲流读写原理:
将读取的数据先临时存储在缓冲区;
当缓冲区写满了,才会将缓冲区的数据写入目的端。
使用缓冲流的优点:
提高了IO效率,同时减少了对硬盘的损耗。
使用:同样是在先创建节点流的基础上使用高级流:
// 1、创建字节缓冲流
// 先创建字节流
FileInputStream in=new FileInputStream("C:\\Users\\lx\\Desktop\\b\\HelloWorld.txt");
FileOutputStream out=new FileOutputStream("d:\\HelloWorld.txt");
// 再创建字节缓冲流
BufferedInputStream bin=new BufferedInputStream(in);
BufferedOutputStream bout=new BufferedOutputStream(out);
序列化(反序列化)流:
ObjectInputStream、ObjectOutputStream
对象和字节码之间的转换。
注意事项:
对象需要序列化时必须实现Serializable接口!!!
给对象加上不变的版本号!!!
private static final long serialVersionUID = 1L;
本文含有隐藏内容,请 开通VIP 后查看