Java I/O流

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接口

原文地址:https://www.cnblogs.com/s10-/p/8228074.html