字节输入流一次读取一个字节的原理与字节输入流一次读取多个字节
字节输入流一次读取一个字节的原理
1.新建new FileInputStream对象会指向要读取的文件 指向的是文件中的第一个字节
2.read();读取一个字节并返回 读取 read找JVM再OS再读取数据来
3.read方法读完一位会自动向后移动一位 先a 再 b 再移动一位c 再移动一位到结束标记(window系统的结束标记给到Jvm是-1所以返回了-1)
字节输入流一次读取多个字节
package DemoOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Arrays; /* 字节输入流一次读取多个字节的方法: int read(byte[] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。 明确两件事情: 1.方法的参数byte[]的作用? 起到缓冲作用,存储每次读取到的多个字节 数组的长度一把定义为1024( 1kb)或者1024的整数倍 2.方法的返回值int是什么? String类的构造方法 String( byte[]bytes):把字节数组转换为字符串 string(byte[ ] bytes, int offset, int length)把字节数组的一部分转换为字符串 offset:数组的开始索引Length :转换的字节个数 */ public class Demo02InputStream { public static void main(String[] args) throws IOException { //创建FileInputStream对象,构造方法中绑定要读取的数据源 FileInputStream fie = new FileInputStream("c.txt"); //使用FiLeInputStream对象中的方法readi读取文件 //l/int read(byte[] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组b 中。 /* byte[] bytes = new byte[2]; int len = fie.read(bytes); System.out.println(len); System.out.println(Arrays.toString(bytes)); System.out.println(new String(bytes)); len = fie.read(bytes); System.out.println(len); System.out.println(new String(bytes)); len = fie.read(bytes); System.out.println(len); System.out.println(new String(bytes)); len = fie.read(bytes); System.out.println(len); System.out.println(new String(bytes)); len = fie.read(bytes); System.out.println(len); System.out.println(new String(bytes)); */ byte[] bytes = new byte[1024]; int len = 0; while ((len = fie.read(bytes))!=-1){ System.out.println(new String(bytes,0,len)); } //释放资源 fie.close(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)