JAVA_IO_文件读取

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));
		}
	
	
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值