当前位置: 首页 > news >正文

【好程序员特训营】IO常用流的功能及特性

IO常用流的功能及特性:

输入流inputStream:只能从中读取字节数据,而不能向其写出数据

输出流OutputStream:只能向其写入字节数据,而不能从中读取数据

输入流inputStream

1. dataOutputStream创建一个新的数据输出流,将数据写入指定基础输出流。

2. printStream是一个字节打印流

3. bufferedOutputStream:实现缓冲。

4. FileOutputStream是用于将数据写入 File 或 FileDescriptor 的输出流,是用于写入诸如图像数据之类的原始字节的流。

5. ObjectOutputStream;用于读取(重构)对象。

6. pipedOutputStream创建尚未连接到管道输入流的管道输出流。

7. byteArrayOutputStream实现了一个输出流,其中的数据被写入一个 byte 数组。

输出流OutputStream

1. pushBackInputStream为另一个输入流添加性能,

2. BufferedInputStream为另一个输入流添加一些功能

3. lineNumberInputStream是一个输入流过滤器,它提供跟踪当前行号的附加功能

4. FileInputStream负责从文件或另一些更特殊的地方读入字节数据。

5. ObjectInputStream对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。

7.  SequenceInputStream表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。

8. StringBufferInputStream创建一个字符串输入流

9. ByteArrayInputStream创建一个涵内部缓冲区的流

Reader:用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()

1.FileReader用于处理文件的字符读取流对象。

2.LineNumberReader使用默认输入缓冲区的大小创建新的行编号

3.pushBackReader允许将字符推回到流的字符流 reader

4.PipedReader创建传送的字符输入流。

5.CharArrayReader实现一个可用作字符输入流的字符缓冲区

6.StringReader是一个字符串的字符流

7.InputStreamReader字节到字符的桥梁,可从底层输入流读取一个或多个字节

8.BufferedReader创建一个缓冲字符输入流

9.FilterReader用于读取已过滤的字符流的抽象类,提供一些将所有请求传递给所包含的流的默认方法

Writer写入字符流的抽象类。子类必须实现的方法仅有 write(char[], int, int)flush() 和 close()

1. FileWriter处理文件的字符写入流对象。

2. BufferedWriter将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

3. CharArrayWriter实现一个可用作 Writer 的字符缓冲区

4. StringWriter一个可以用它回收在字符串缓冲区中的输出来构造字符串的字符流。 关闭 StringWriter 无效。此类中的方法在关闭该流后仍可被调用,而不会产生任何 IOException。

5. OutputStreamWriter字符到字节的桥梁。

6. PrintWriter负责将字节“组装”成更有用的数据类型。

7. PipedWriter传送的字符输出流。创建一个尚未连接到传送 reader 的传送 writer

8. FilterWriter用于写入已过滤的字符流的抽象类。

序列流,也称为合并流——SequenceInputStream:

特点:可以将多个读取流合并成一个流。这样操作起来很方便。

原理:其实就是将每一个读取流对象存储到一个集合中。最后一个流对象结尾作为这个流的结尾。

作用:可以用于多个数据的合并。

相关文章:

  • 【好程序员特训营】Java类与对象
  • 【好程序员特训营】Java网络连接测试小例子
  • Unity4.6中修改RectTransform的宽度和高度
  • unity3D 动态导入FBX、obj模型
  • UL标签的padding与margin默认值
  • 一个让img居中居左居右的方法
  • 谷歌 CardBoard Unity开发基础
  • Unity使用Face++
  • Processing 用图片填充形状
  • Unity结合讯飞语音在线识别
  • Arduino控制L298N
  • Unity Mesh初探
  • Processing 中文字体
  • Arduino和Android通过OTG 通信
  • 把Unity作为Android的子视图
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • [译]CSS 居中(Center)方法大合集
  • 2019.2.20 c++ 知识梳理
  • avalon2.2的VM生成过程
  • Effective Java 笔记(一)
  • FineReport中如何实现自动滚屏效果
  • JDK9: 集成 Jshell 和 Maven 项目.
  • MySQL用户中的%到底包不包括localhost?
  • oldjun 检测网站的经验
  • Python socket服务器端、客户端传送信息
  • rabbitmq延迟消息示例
  • ReactNative开发常用的三方模块
  • socket.io+express实现聊天室的思考(三)
  • SpringCloud集成分布式事务LCN (一)
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 关于 Cirru Editor 存储格式
  • 关于for循环的简单归纳
  • 机器学习 vs. 深度学习
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 突破自己的技术思维
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 写代码的正确姿势
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • Python 之网络式编程
  • ​secrets --- 生成管理密码的安全随机数​
  • "无招胜有招"nbsp;史上最全的互…
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (20050108)又读《平凡的世界》
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (三) diretfbrc详解
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (五)网络优化与超参数选择--九五小庞
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • .NET构架之我见
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • @RequestMapping用法详解