File类:
文件和目录路径名的抽象表示形式
构造方法:
File(File parent,String child)
根据parent抽象路径名和child路径名字符串来创建一个新的File实例
File(String pathname)
通过将给定路径名 字符串转换为抽象路径名来创建一个新的File实例
File(String parent,String child)
根据parent路径名 字符串和child路径名 字符串创建一个新的File实例
方法:
1、boolean canWrite() 测试应用程序是否可以修改抽象路径名表示的文件。 如果文件设置为只读,就不可以修改
2、boolean setReadOnly()
3、boolean createNewFile()当文件不存在的时候创建一个该文件,并返回true
当文件存在的时候,直接返回false
4、boolean delete()删除
5、boolean exists() 测试此抽象路径名表示的文件或者目录是否存在
6、File getAbsoluteFile()
返回此抽象路径名的绝对路径名形式
String getAbsolutePath(0
返回此抽象路径名的绝对路径名表示形式
7、long getTotalSpace();
获取目录的总内存
long getFreeSpace();
获取目录剩余空间的内存(long)
8、String getParent()
返回此抽象路径父目录的路径名称字符串
File getParent()
返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回null
9、boolean isAbsolute()
测试此抽象路径名是否为绝对路径名
10、boolean isDirectory()
测试此抽象路径名表示的文件是否是一个目录
boolean isFile()
测试此抽象路径名表示的文件是否是一个标准文件
boolean isHidden()
测试此抽象路径名指定的文件是否是一个隐藏文件
11、long lastModified() 返回此抽象路径名表示的文件最后一次被修改的时间
12、long length() 返回由此抽象路径名表示的文件的长度
13、String[] list(0
File[] listFiles()
14、boolean mkdir()
创建此抽象路径名指定的目录
boolean mkdirs()
创建此抽象路径名指定的目录,包含所有必须但不存在的父目录
15、重新命名此抽象路径名表示的文件
IO:
流:一连串流动的数据,先进先出的放肆传递信息,管道
数据源:目的地----**>以程序为中心**换分读入写出
流的分类:
按照流向分:
输入流
输出流
按操作单元分:
字节流
字符流
按功能分:
节点流
处理流|功能流
字节流:是万能的 功能:节点流
InputStream 字节输入流 此抽象了是表示字节输入流的所有类的超类。 read()有返回值,值是读取的长度
FileInputStream 从文件系统中的某个文件中获得输入字节。
OutputStream 字节输出流 write() 没有返回值!
字符流:只能读写纯文本内容 功能分类:节点流
Reader 字符输入流 FileReader 文件字符输入流
Writer 字符输出流 FileWriter
字符流 字节流 ----> 节点流
包裹节点流,在节点流之上 ----> 功能流|处理流
处理流:增强功能,提高性能的作用,在节点流之外才能使用,不能代替节点流
缓冲流:提高性能
字节缓冲流 :BufferedInputStream BufferedOutputStream 无新增方法
字符缓冲流:不能发生多态(想要使用新增方法,不要发生多态),因为***存在新增方法***
BufferedReader 字节输入缓冲流 新增方法 readLine() 读取一行
BufferedWriter 字节输出缓冲流 新增方法 newLine() 写出一个换行符
文件的拷贝
数据源 程序 目的地
关闭流:先打开的后关闭,后打开的先关闭
注意!:在进行文件的拷贝之前,需要提前创建有一个文件
对象流:
对象流 序列化 公共流
ObjectInputStream 反序列化输入流 新增方法 readObject()
ObjectOutputStream 序列化输出流 新增方法 writeObject()
注意:
先序列化后反序列化
输入写出的顺序必须一致
不是所有的类都能够序列化 实现接口java.io.Serializable
不是所有的属性都需要序列化 transient
如果父类实现了序列化接口,子类中所有的内容都与能力序列化
如果子类实现了序列化接口,但是父类没有实现,子类只能序列化自己的内容
静态的内容不能序列化