package com.IO_File;
import java.io.*;
/**
* @author 菊丿外人
* 功能:读取文件内容
* 通过File对象我们可以读取文件或者文件夹得属性,如果需要读取文件的内容数据
* 需要用到IO流
* IO流解决问题,解决设备与设备之间的数据传输问题。 内存--->硬盘 硬盘--->内存
* IO流技术:
*
* IO流分类:
* 流入按照数据的流向划分:
* 输入流
* 输出流
* 判断使用是输入流还是输出流的依据:以当前程序作为参照物,观察数据是流入
* 还是流出,如果是流入是输入流,反之也成立
*
* 如果按照处理的单位划分:
* 字节流:字节流读取的都是文件中二进制数据,
* 读取到二进制数据不会经过任何处理
* 字符流:字符流读取到数据是以字符为单位的,
* 字符流也是读取文件中的二进制数据,
* 不过会把这些二进制数据转换成我们能识别的字符
* 字符流 = 字节流 + 解码
*
*/
public class File_2 {
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
// 输入字节流
//读取方式一:无法得到完整文件的数据
//1、 找到目标文件
File file = new File("D:/50464/a.txt");
//2、 建立数据的输入通道
FileInputStream fileInputStream = new FileInputStream(file);
//3、 读取文件中的数据
int content= fileInputStream.read();//read( )读取一个数据字节,把读到的数据返回
System.out.println("读到的内容是"+content);
// 关闭资源,实际上就是释放资源
fileInputStream.close();
//读取方式二:慢
// while((content = fileInputStream.read())!=-1){
// System.out.println("读到的内容是"+(char)content);
// }
//读取方式三:使用缓冲数组 确定:无法读取完整一个文件的数据
FileInputStream fileInputStream2 = new FileInputStream(file);
//建立缓冲字节数组,读取文件的数据
byte[] buf1 = new byte[2000];
int length1 = fileInputStream2.read(buf1);//数据已经读取到byte数组中
System.out.println(length1);
// 使用字节数组构建字符串
String string1 = new String(buf1,0,length1);
System.out.println(string1);
System.out.println(string1.length());
fileInputStream2.close();
//读取方式四:使用缓冲数组,配合数组一起读取
FileInputStream fileInputStream3 = new FileInputStream(file);
byte[] buf2 = new byte[4];//存储读取到的数据
int length2=0;
while((length2=fileInputStream3.read(buf2))!=-1){
System.out.println(new String(buf2,0,length2));
}
}
}
JAVA_IO_文件读取
最新推荐文章于 2021-02-19 20:57:32 发布