博客
关于我
JavaSE基础系列之IO流
阅读量:358 次
发布时间:2019-03-04

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

一. IO流分类

按照读写数据的基本单位不同,流可以分为字节流和字符流。

  • 字节流:以字节为单位读写数据,适用于处理任意类型的文件。
  • 字符流:以字符(2字节)为单位读写数据,主要用于处理文本文件。

从读写方向的角度看,流分为输入流和输出流。

  • 输入流:从文件中读取数据输入程序。
  • 输出流:将程序中的数据输出到文件中。

根据流的角色不同,流可以分为节点流和处理流。

  • 节点流:直接与输入输出源对接的流。
  • 处理流:建立在节点流基础上的流,通常用于更复杂的数据处理。

以下是不同类型流的对应关系:

分类 字节输入流 字节输出流 字符输入流 字符输出流
抽象基类 InputStream OutputStream Reader Writer
访问文件 FileInputStream FileOutputStream FileReader FileWriter
访问数组 ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter
访问管道 PipedInputStream PipedOutputStream PipedReader PipedWriter
访问字符串 -- -- StringReader StringWriter
缓冲流 BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter
转换流 -- -- InputStreamReader OutputStreamWriter
对象流 ObjectInputStream ObjectOutputStream -- --
Filter输入流 FilterInputStream FilterOutputStream FilterReader FilterWriter
打印流 -- PrintStream -- PrintWriter
推回输入流 PushbackInputStream -- PushbackReader --
特殊流 DataInputStream DataOutputStream -- --

二. 缓冲流的优缺点

优点:减少了写入次数,提高了数据传输效率。

缺点:带缓冲的流会导致接收端可能无法及时获取数据。

三. 序列化版本号作用

序列化机制通过检查serialVersionUID来验证版本一致性。当反序列化时,JVM会将传入的serialVersionUID与本地类的serialVersionUID进行比较,若不一致则抛出异常。

四. transient关键字

transient是Java关键字,用来表示属性不会被序列化。当对象被序列化时,transient属性的值不会被包含在序列化表示中。transient字段的生命周期仅存在于内存中,不会被写入存储设备。

帮助理解:为了保障数据安全,如操作账号和密码等敏感信息不希望被序列化,可以将这些属性加上transient关键字。

转载地址:http://qvdr.baihongyu.com/

你可能感兴趣的文章
Openlayers高级交互(11/20):显示带箭头的线段轨迹,箭头居中
查看>>
Openlayers高级交互(12/20):利用高德逆地理编码,点击位置,显示坐标和地址
查看>>
Openlayers高级交互(13/20):选择左右两部分的地图内容,横向卷帘
查看>>
Openlayers高级交互(14/20):汽车移动轨迹动画(开始、暂停、结束)
查看>>
Openlayers高级交互(15/20):显示海量多边形,10ms加载完成
查看>>
Openlayers高级交互(16/20):两个多边形的交集、差集、并集处理
查看>>
Openlayers高级交互(17/20):通过坐标显示多边形,计算出最大幅宽
查看>>
Openlayers高级交互(18/20):根据feature,将图形适配到最可视化窗口
查看>>
Openlayers高级交互(19/20): 地图上点击某处,列表中显示对应位置
查看>>
Openlayers高级交互(2/20):清除所有图层的有效方法
查看>>
Openlayers高级交互(20/20):超级数据聚合,页面不再混乱
查看>>
Openlayers高级交互(3/20):动态添加 layer 到 layerGroup,并动态删除
查看>>
Openlayers高级交互(4/20):手绘多边形,导出KML文件,可以自定义name和style
查看>>
Openlayers高级交互(5/20):右键点击,获取该点下多个图层的feature信息
查看>>
Openlayers高级交互(6/20):绘制某点,判断它是否在一个电子围栏内
查看>>
Openlayers高级交互(7/20):点击某点弹出窗口,自动播放视频
查看>>
Openlayers高级交互(8/20):选取feature,平移feature
查看>>
Openlayers高级交互(9/20):编辑图形(放缩、平移、变形、旋转),停止编辑
查看>>
Openlayers:DMS-DD坐标形式互相转换
查看>>
openlayers:圆孔相机根据卫星经度、纬度、高度、半径比例推算绘制地面的拍摄的区域
查看>>