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

--- stream 数据流 java ---

文件内容的读写 数据流

可以讲数据想象成一个流淌着数据的河流,一条讲cpu和文件数据联系起来的河流,对于数据的读取的类是InputStream,写入是OutPutStream,简单的判断就是你坐在cpu上,数据向你流过来,那么就是读取inputStream,数据从cpu出去,离你越来越远就是写入,OutputStream

数据的读取

InputStream 字节流

以字节为单位来处理数据

InputStream是一个抽象类,使用时需要一个具体的实现类,对于inputStream实现类有很多可以认为每一种输入的对象都有一个单独的实现类

这里对文件进行读取操作,那么就是FileInputStream

read(byte[] bytes)                 int        将数据读取到字节数组中,返回的是成功读取到的数据的个数,读取时数据尽量的多读取到数组中,最多读取bytes.lengh的的长度 -1代表读完了
read()        int读取一个字节并返回

read(byte[] bytes,int off,int len)

       int

从off位置开始,最多读取len-off个数据到数组中
close()        void关闭字节流防止资源的浪费

字符流 FileReader

每次读取一个字符,能够处理字符数据,他可以自动处理字符的编码,按照指定的编码一次读取多个字节来对应一个字符

方法和使用和字节流的一样

数据的写入               

字节流 OutputStream

write(int b)        void将数据写入到指定的对象中去
write(byte[] b)        void将数组中的全部写入到数组中去
flush()        void因为为了减少io的次数,那么就会先将数据写入到缓冲区中,这是是没有真正写入到对象中,那么需要使用flush清空缓冲区,将数据强制写入到对象中

字符流 FileWriter 和 OutputStream的具体操作相同

包装io类

对于InputStream 和OutputStream的直接使用还是挺麻烦的,这是就可以是用Scanner来读取数据

这是对于数据的操作就是我们所熟悉的scanner对应的方法了

OutPutStream 使用 PrintWriter

PrintWriter 中的方法的是print、printf、println都是我们熟悉的方法

对于方法的使用

可以理解为将数据打印到对象中,也就是写入到了对象中

还有种自动关闭资源的写法

这样在try退出时程序自动关闭资源,这样就确保资源会忘记关闭了


http://www.kler.cn/a/410032.html

相关文章:

  • 蓝网科技临床浏览系统存在SQL注入漏洞
  • HarmonyOS开发者社区有奖征文二期活动开启!
  • ‌Kotlin中的?.和!!主要区别
  • Spring Boot集成MyBatis-Plus:自定义拦截器实现动态表名切换
  • 【AI】基础原理
  • 第三百三十一节 Java网络教程 - Java网络UDP多播
  • PyTorch 分布式并行计算
  • 使用Go语言实现线程安全的Map
  • 区块链网络示意图;Aura共识和Grandpa共识(BFT共识)
  • 通过 LangChain 使用 GPT 生成创意项目:详细教程
  • 完全二叉树的基本操作(顺序存储)
  • uniapp中uni-popup在小程序中滚动穿透问题
  • 不同查询构建器的使用方式(Mybatis、Mybatis-Plus、Mybatis-Flex、Spring Data JPA、QueryDsl)
  • Softing线上研讨会 | Ethernet-APL:推动数字时代的过程自动化
  • 用PythonSudio在控件中添加、删除控件,并传递参数(以ScrollBox中添加删除按钮为例)
  • 应用系统开发(14) 涡流检测系统硬件设计
  • 室内定位论文速递(11.23-11.25)
  • 微信小程序WXSS全局样式与局部样式的使用教程
  • 基于 Docker 的持续集成/持续交付(CI/CD)流水线构建实战
  • idea-java项目中的全部接口提取