【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(); } }
标签:fis,字节,文件,read,File,new,FileInPutStream,读取 From: https://www.cnblogs.com/jeldp/p/16892226.html