FileInPutStream读取文件中内容
【1】读取文本文件
package com.msb.io02; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; /** * @author : liu * 日期:10:52:13 * 描述:IntelliJ IDEA * 版本:1.0 */ public class Test01 { //这是一个main方法:是程序的入口 public static void main(String[] args) throws IOException { //功能:利用字节流将文件中内容读取到程序中来 //1.有一个源文件 File f=new File("d:\\test.txt"); //2.将一个字节流 这个管怼到源文件上 FileInputStream fp=new FileInputStream(f); //3.开始读取动作 /* 细节1:文件是UTF-8进行存储的,所以英文字符底层实际占用1个字节 但是中文字符,底层实际占用3个字节 细节2:如果文件是文本文件那么就不要使用字节流读取了,建议使用字符流 细节3:read()读取一个字节,但是你有没有发现返回值是int类型,而不是byte类型? read()底层做了处理,让返回的数据都是“正数” 就是为了避免如果字节返回返回的是-1的话,那么底层是读入的字节,还是到文件结尾呢。 * */ int n = fp.read(); while (n!=-1){ System.out.println(n); n=fp.read(); } //4.关闭流 fp.close(); } }
【2】利用字节流读取非文本文件(以图片为例)----》一个字节一个字节的读取
package com.msb.io02; import java.io.*; /** * @author : liu * 日期:11:31:01 * 描述:IntelliJ IDEA * 版本:1.0 */ public class Test02 { //这是一个main方法:是程序的入口 public static void main(String[] args) throws IOException { File file= new File("d:\\lol.jpg"); FileInputStream fis=new FileInputStream(file); int read = fis.read(); int count=0;//加入一个计数器,用来记录读入的字节个数 while (read!=-1){ count++; read=fis.read(); } System.out.println(count); fis.close(); } }
【3】利用缓冲数组读取 ,字节类型的缓存数组
package com.msb.io02; import java.io.*; /** * @author : liu * 日期:11:31:01 * 描述:IntelliJ IDEA * 版本:1.0 */ public class Test02 { //这是一个main方法:是程序的入口 public static void main(String[] args) throws IOException { File file= new File("d:\\lol.jpg"); FileInputStream fis=new FileInputStream(file); byte[] b=new byte[1024*6]; int read = fis.read(b);//read指的就是读取的数组中有效长度 while (read!=-1){ for (int i = 0; i < read; i++) { System.out.println(b[i]); } read=fis.read(b); } fis.close(); } }
分类:
IO流
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)