博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IO流基础知识
阅读量:6164 次
发布时间:2019-06-21

本文共 1224 字,大约阅读时间需要 4 分钟。

  • File类
  • RandomAccessFile类
  • 字节流类
  • 字符流类
  • 对象的序列化

File类

File类只用于表示文件(目录)的信息(名称、大小),不能用于文件内容的访问。

文件地址的路径用双斜杠隔开,斜杠可以正斜杠,也可以是反斜杠。

File类中常用方法:

exists():判断文件是否存在,返回boolean类型;
mkdir():创建目录;
mkdirs():创建多级目录;
delete():删除文件;
createNewFile():创建文件;

mkdir()和mkdirs()的区别:

mkdir()只能在已经存在的目录中创建文件夹,mkdirs()可以在不存在的目录中创建文件夹。

RandomAccessFile类

该类可以对文件的内容进行访问,既可以读文件,也可以写文件。并且支持随机访问文件,可以访问文件的任意位置。读写方法write()、read()一次只能读写一个字节(后8位)。

//有两种模式,"rw"和"r"RandomAccessFile raf=new RandomAccessFile(file,"rw")

字节流类

  • FileInputStream/FileOutputStream:读写字节流文件,只能读写低八位;
  • DataOutputStream/DataInputStream:对流的功能进行了拓展,可以用writeInt()、writeDouble()等方法对int、long、字符等类型进行读取;
  • BufferedInputStream/BufferedOutputStream:为IO提供了带缓冲区的操作,一般打开文件进行写入或读取操作时,都会加上缓冲,这种流模式提高了IO的性能;

字符流类

  • InputStreamReader:完成byte流解析为char流,按照编码解析;
  • OutputStreamWriter:提供char流到byte流,按照编码处理;
  • FileWriter/ FileReader:直接将文件按字符读写;
  • BufferedReader:其中的readLine()方法,可以一次读取一行;
  • BufferedWriter/PrintWriter:一次输出一行;

对象的序列化

对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化。

序列化流(ObjectOutputStream)--writeObject()
反序列化流(ObjectInutStream)--readObject()

序列化接口(Serializable):

对象必须实现序列化接口,才能进行序列化,否则将出现异常,这个接口,没有任何方法,只是一个 标准;

transient关键字: 使元素不会进行jvm默认的序列化;

注意

  • 写数据之后记得调用flush();
  • 结束读取记得关闭所有流;

转载于:https://www.cnblogs.com/leungjj/p/6606525.html

你可能感兴趣的文章
给PowerShell脚本传递参数
查看>>
实战2——Hadoop的日志分析
查看>>
利用FIFO进行文件拷贝一例
查看>>
Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG
查看>>
resmgr:cpu quantum等待事件
查看>>
一个屌丝程序猿的人生(六十六)
查看>>
Java 编码 UTF-8
查看>>
SpringMVC实战(注解)
查看>>
关于静态属性和静态函数
查看>>
进程的基本属性:进程ID、父进程ID、进程组ID、会话和控制终端
查看>>
spring+jotm+ibatis+mysql实现JTA分布式事务
查看>>
MyBatis启动:MapperStatement创建
查看>>
调查问卷相关
查看>>
eclipse启动无响应,老是加载不了revert resources,或停留在Loading workbench状态
查看>>
1. Git-2.12.0-64-bit .exe下载
查看>>
怎样关闭“粘滞键”?
查看>>
[转]React 教程
查看>>
拓扑排序介绍
查看>>
eclipse打开工作空间(workspace)没有任务反应
查看>>
使用Sybmol模块来构建神经网络
查看>>