Java日志第37天 2020.8.11
字节输入流
java.lang.InputStream
此抽象类是表示字节输入流的所有类的超类
所有子类中共性的方法:
1. int read():从输入流中读取数据的下一个字节
2. int read(byte[] b) :从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中
3. void close():关闭此输入流并释放与该流关联的所有系统资源
FileInputStream
文件字节输入流
java.io.FiIeInputStream entends InputStream
作用:把硬盘文件中的数据读取到内存中使用
构造方法
- FileInputStream(String name)
- FileInputStream(File file)
读取一个字节
import java.io.FileInputStream; import java.io.IOException; public class Demo01InputStream { public static void main(String[] args) throws IOException { //创建FileInputStream对象,构造方法中绑定要读取的数据源 FileInputStream fis = new FileInputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\a.txt"); //使用FileInputStream对象中的方法read,读取文件 //read方法一次读取一个字节,读取至文件末尾返回-1 int len = fis.read(); System.out.println((char) len); len = fis.read(); System.out.println((char) len); len = fis.read(); System.out.println((char) len); //释放资源 fis.close(); } }
结果如下:
以上的重复代码可以使用while循环
import java.io.FileInputStream; import java.io.IOException; public class Demo01InputStream { public static void main(String[] args) throws IOException { //创建FileInputStream对象,构造方法中绑定要读取的数据源 FileInputStream fis = new FileInputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\a.txt"); //使用FileInputStream对象中的方法read,读取文件 //read方法一次读取一个字节,读取至文件末尾返回-1 int len = 0; while((len = fis.read()) != -1){ System.out.println((char) len); } //释放资源 fis.close(); } }
读取多个字节
import java.io.FileInputStream; import java.io.IOException; import java.util.Arrays; public class Demo01InputStream { public static void main(String[] args) throws IOException { //创建FileInputStream对象,构造方法中绑定要读取的数据源 FileInputStream fis = new FileInputStream("E:\\Java\\Practice\\src\\Practice\\demo15\\a.txt"); //使用FileInputStream对象中的方法read,读取文件 byte[] bytes = new byte[2]; int len = fis.read(bytes); System.out.println("len = "+len); System.out.println(new String(bytes)); len = fis.read(bytes); System.out.println("len = "+len); System.out.println(new String(bytes)); len = fis.read(bytes); System.out.println("len = "+len); System.out.println(new String(bytes)); //释放资源 fis.close(); }
结果如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南