【Java学习】IO流 read( )原理困惑
时间:2022-01-24
本文章向大家介绍【Java学习】IO流 read( )原理困惑,主要包括【Java学习】IO流 read( )原理困惑使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在学习IO流读写文件时不清楚这个while循环存在的必要。
误以为read是把路径文件中的内容传入b中 再输出 输出的内容多少有数组长度决定 于是便有了第一张图。
随着内容改变 数组内的值需要不断变化。就很麻烦 于是
查阅api发现 数组时决定最多读取数目的。
那我直接改大了 不久能读到下边的数字吗?
困惑之际 发现了六年前的知乎问题
豁然开朗
try { FileInputStream in = new FileInputStream("E:\\java-selfLearning\\IO\\FileTest.txt"); //字节流 byte[] b = new byte[10];//设置一个比特数组接收文件内容 in.read(b);//这个方法有一个返回值 返回值是读取的数据的长度。 int len = 0; while ((len = in.read(b)) != -1) { System.out.println(new String(b,0,len )); } in.close();//流在使用后要关闭 }
read(b [ i ])
i 决定了一次能读到的数目
b 读取数据的缓冲区 换句话说 接收数据即文件内容
return b的长度 或者 文件到达末尾 返回-1
假设i = 10;
第一次读10个 并把1-10个字节的内容传给b[ ] 返回10 len = 10 != -1成立 输出b[0 - 9] 的内容
第二次读10个 并把11-20个字节的内容传给b[ ] 返回10 len = 10 !=-1 成立 输出 b[0 - 9] 的内容 此时的 b 已经赋了11-20的内容
重复上列操作
直到read 返回-1 结束循环。
这样就不会需要总是改变b数组的大小 就能把所有内容读出来
什么弱智问题 服了我自己了
写起来都觉得弱智 不就是一个循环吗
原文地址:https://www.cnblogs.com/Atooooooooon/p/15840757.html
- 基于thrift的微服务框架
- thrift中的超时(timeout)坑
- 基于webmagic的爬虫项目经验小结
- Docker Hub工作流程-Docker for Web Developers(6)
- PHP+MySQL代码部署在Linux(Ubuntu)上注意事项
- mac系统上使用压缩包版的mysql(非安装版)
- oracle的decode函数在mysql的实现
- Python的解码和编码
- 原生Ajax总结
- 多个知名化妆品牌现假官网,域名保护该受重视
- JavaScript操作Cookie
- Windows下Go环境安装
- Angular定义服务-Learn By Doing
- JS魔法堂:不完全国际化&本地化手册 之 理論篇
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 使用holder.js生成美观的网页占位图
- Android studio 3.5.2安装图文教程详解
- Android面试必备的JVM虚拟机制详解,看完之后简历上多一个技能!
- 如何在PHP中JSON在线解析
- Linux下如何克隆磁盘/分区命令dd入门
- Android自定义跑马灯文字效果
- Android实现图片自动切换功能(实例代码详解)
- Android Studio 3.6 正式版终于发布了,快来围观
- android使用ViewPager实现图片自动切换
- Android Studio 3.6 调试 smali的全过程
- Android 10 适配攻略小结
- Android P实现静默安装的方法示例(官方Demo)
- Android studio实现滑动开关
- Android实现TCP客户端支持读写操作
- Android通过命令连接wifi的方法(解决usb不能用问题)