博客
关于我
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/

你可能感兴趣的文章
npm install 报错 Failed to connect to github.com port 443 的解决方法
查看>>
npm install 报错 fatal: unable to connect to github.com 的解决方法
查看>>
npm install 报错 no such file or directory 的解决方法
查看>>
npm install 权限问题
查看>>
npm install报错,证书验证失败unable to get local issuer certificate
查看>>
npm install无法生成node_modules的解决方法
查看>>
npm install的--save和--save-dev使用说明
查看>>
npm node pm2相关问题
查看>>
npm run build 失败Compiler server unexpectedly exited with code: null and signal: SIGBUS
查看>>
npm run build报Cannot find module错误的解决方法
查看>>
npm run build部署到云服务器中的Nginx(图文配置)
查看>>
npm run dev 和npm dev、npm run start和npm start、npm run serve和npm serve等的区别
查看>>
npm run dev 报错PS ‘vite‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
查看>>
npm scripts 使用指南
查看>>
npm should be run outside of the node repl, in your normal shell
查看>>
npm start运行了什么
查看>>
npm WARN deprecated core-js@2.6.12 core-js@<3.3 is no longer maintained and not recommended for usa
查看>>
npm 下载依赖慢的解决方案(亲测有效)
查看>>
npm 安装依赖过程中报错:Error: Can‘t find Python executable “python“, you can set the PYTHON env variable
查看>>
npm.taobao.org 淘宝 npm 镜像证书过期?这样解决!
查看>>