I/O流学习--InputStream的读取文件方法

本文介绍了三种使用Java进行文件读取的方法,包括逐字节读取、一次性读取整个文件及指定长度读取等技巧,并提供了详细的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文介绍三种常见的文件读取方法,代码如下:

方法1:

package com.jredu.InputStream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
/**
 * 读取文件内容
 * 方法一
 * @author Hello
 *
 */
public class Tch1 {
	public static void main(String[] args) {
		//磁盘路径两种表示方式:1.\\  2./
		try {
			//从文件地址中读取内容到程序中
			InputStream is=new FileInputStream("此处为文件的相对路径");
			//开始读取信息,方法一
			//先定义一个字节数组存放数据 ,用available方法确定读取的文件长度
			byte[]b=new byte[is.available()]; 
			//声明一个int存储每一次读取到的数据     
			int i=0; 
			//定义一个索引的变量	
			int index=0; 	
			//循环读取每个 数据
			while((i=is.read())!=-1){
				b[index]=(byte) i;
				index++;
			}
			System.out.println(Arrays.toString(b));
			//String(byte[])把字节数组转换成字符串
			System.out.println(new  String(b));
			//使用完毕,关闭流
			is.close();
		} catch (FileNotFoundException e) {
			//文件没有找到
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			//文件读写异常
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}


方法2:

package com.jredu.InputStream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
/**
 * 读取文件内容
 * 方法二
 * @author Hello
 *
 */
public class Tch2 {
	public static void main(String[] args) {
		//磁盘路径两种表示方式:1.\\  2./
		try {
			//从文件地址中读取内容到程序中
			InputStream is=new FileInputStream("此处为文件的相对路径");
			//开始读取信息,方法二     
			//先定义一个字节数组存放数据 ,可以用available方法确定读取的文件长度
			byte[]bs=new byte[is.available()]; 
			//完整的读取一个文件,此方法需要预先知道文件大小,所以使用前可以先定义一个使用available方法的数组
			is.read(bs);
			System.out.println(Arrays.toString(bs));
			//String(byte[])把字节数组转换成字符串
			System.out.println(new  String(bs));
			//使用完毕,关闭流
			is.close();
		} catch (FileNotFoundException e) {
			//文件没有找到
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			//文件读写异常
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

方法3:

package com.jredu.InputStream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
/**
 * 读取文件内容
 * 方法三
 * @author Hello
 *
 */
public class Tch3 {
	public static void main(String[] args) {
		//磁盘路径两种表示方式:1.\\  2./
		try {
			//从文件地址中读取内容到程序中
			InputStream is=new FileInputStream("此处为文件的相对路径");
			//开始读取信息,方法三
			byte[]bs=new byte[8]; 
			int off=0;
//			当off < 0 || len < 0 || len > b.length - off时会抛出异常,需要设置足够长的数组
//			这里要读取的文件有5个字符,所以设置字符串8个可以避免异常
			while (is.read(bs, off, 2)!=-1) {
//				通过查看bs和off的输出检查是否下标越界
				System.out.println("bs:"+new String(bs));
				System.out.println("off:"+off);
				off+=2;				
			}
			System.out.println(Arrays.toString(bs));
			//String(byte[])把字节数组转换成字符串
			System.out.println(new  String(bs));
			//使用完毕,关闭流
			is.close();
		} catch (FileNotFoundException e) {
			//文件没有找到
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			//文件读写异常
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值