File类:
exists()判断文件是否存在
createNewFile()创建文件
delete()删除文件
length()文件大小
getName()文件名称
getAbsolutePath()绝对路径
mkdir()创建一级文件夹
mkdirs()创建多级文件夹
oldFile.renameTo(newFile)修改文件名称
listFiles()查询目录下的文件,返回file类型的数组
isDirectory()判断是否是目录
isFile()判断是否是文件
IO流: 相对于内存
所有的输入流都有一个read()方法
所有的输出流都有一个write()方法 写入数据 而且每个对象的输出流构造方法都有覆盖之前的内容
1.字节流
基类:InputStream OutputStream
available()可读取的字节数
read()读取一个8位的字节,返回返回0-255之间的一个整数 -1代表文件没有内容
write()写入
字节输入流的操作:
1 byte=8 bit
stream.read()
从流中读取一个8位的字节,然后返回0-255之间的一个整数
如果流读取到了最后,会返回-1
字节输出流的操作:
write()写入
OutputStream本身没有设置缓冲区
它的子类中有BufferedOutputStream PrintStream
2.字符流: 两个基类
基类是Reader Writer
Reader:把文件中的内容读取到内存中
Writer:把内存中的数据保存到文件中
缓冲流:基类 BufferReader BufferWriter
newLine()换行
flush()清理缓冲区
3.二进制流 (图片,视频,音频)
基类是DataInputStream DataOutputStream
4.序列化和反序列化
基类是ObjectInputStream ObjectOutputStream
只有实现了Serializable接口的类,才可以序列化
持久化技术:长时间,不会消失
比如说:我们的QQ,微信等账号,每次登陆都需要我们重复注册吗?
因为我们第一次的注册信息,已经被放进了对应的数据库中,持久保存!
数据库就是我们的持久化技术之一!
把数据保存在文件中也是我们的持久化技术之一!
xml也是我们的持久化技术之一!
把java中的对象保存在持久化文件中,这就是序列化!
把持久化文件中保存的信息还原成java中的对象,就是反序列化!
想实现序列化和反序列化,必须让对象中的类去实现一个接口Serializable接口