File
常规的方法
-
创建文件 public boolean createNewFile()
-
创建文件夹 public boolean mkdir()
-
创建文件夹以及父目录 public boolean mkdirs()
-
删除文件 public boolean delete()
判断性: -
public boolean exists() ==>判断文件是否存在
-
public boolean isFile() ==>判断是否是一个文件
-
public boolean isDirectory() ==>判断是否是一个文件夹
-
public boolean isHidden() ==>判断是否是隐藏文件
得到性: -
public String getAbsolutePath() ==>返回文件或者文件的绝对路径
-
public String getName() ==> 返回的是文件或者文件夹名称
-
public String getParent() ==> 返回的是文件或者文件夹的父目录
-
public String getPath() ==> 返回就是文件的构造方式中的地址
-
public String[] list() ==>返回是当前目录下所以的文件
-
public File[] listFiles(FileFilter filter) ==>使用过滤器来返回有效的文件
-
FileFilter 文件过滤器 ==> 用于对文件进行过滤(把不必要的文件进行过滤)
-
public long length() ==>返回的是文件的长度(文件所占的字节数)
IO流
流对象的划分:
按照流向来进行划分
-
输入流 InputStream
-
输出流 OutputStream
按照类型来进行划分
字
- 节流 InputStream 输入 OutputStream 输出
- 字符流 Reader 读 Writer写
高效流
1.两个高效流 BufferInputStream BufferOutputStream
2.这两个流本身没有读写文件的功能 只是对FileIntputStream 与FileOutputStream 进行分装
3.这两个流读写的原理 就是是使用缓冲区来进行的读写(把字节读取到指定的数组一样),只是这两个流内部封装一个数组 这个数组的长度8192字节
读取原理:也就是将文件中的数据 一次性读取到 字节数组中,读取8192个字节
下一次再读取的数据是不是从磁盘中获取数据 而是从缓冲区数组中获取数据
如果 数组的字节(8192) 都读取完了之后 会从磁盘中再次读取8192个保存字节数组
高效的原因: 避免反复去向磁盘中读取的数据 而直接从内存中的字节数组中读取
写数据也是同样的道理
什么是java序列化,如何实现java序列化
- 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。
可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。 - 序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:
1.将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,
2. implements Serializable只是为了标注该对象是可被序列化的,
3. 然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,
4.接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。