Java 字节流与字符流(字节输入流:InputStream)

本文详细介绍了Java中InputStream类的基本用法,包括如何读取单个字节、如何将读取的数据保存到字节数组中,并通过两个实例演示了不同场景下的文件读取过程。

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

InputStream提供数据读取方法:

·读取单个字节:public abstract int read()throws IOException:

    |-返回值:返回读取的字节内容,如果现在已经没有内容。

·将读取的数据保存在字节数组里:public int read(byte [ ]b)throws IOException;

    |-返回值:返回读取的数据长度,但是如果已经读到结尾了,返回-1;

·将读取的数据保存在部分字节数组里:public int read(byte [ ]b,int off ,int len)throws IOException;

    |-返回值:返回读取的数据长度,但是如果已经读到结尾了,返回-1;

InputStream是一个抽象类,所以如果要进行文件读取使用FileInputStream子类,而这个子类构造:

     ·构造方法:public FileInputStream(File file)throws FileNotFoundException.

范例1:像数组里读取数据

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

public class Demo {
	public static void main(String[] args) throws Exception {
		// 1.定义要输入的文件路径
		File file = new File("e:" + File.separator + "demo" + File.separator + "my.txt");
		// 2.判断路径是否存在才能读取
		if (file.exists()) {
			// 3.使用InputStream进行读取
			InputStream input = new FileInputStream(file);
			// 3.进行数据读取
			byte[] data = new byte[1024];
			int len = input.read(data);
			// 4.关闭输入流
			input.close();
			System.out.println("【" + new String(data, 0, len) + "】");
		}

	}

}

============分割线============

范例2:单个字节读取,利用while循环读取

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

public class Demo {
	public static void main(String[] args) throws Exception {
		// 1.定义要输入的文件路径
		File file = new File("e:" + File.separator + "demo" + File.separator + "my.txt");
		// 2.判断路径是否存在才能读取
		if (file.exists()) {
			// 3.使用InputStream进行读取
			InputStream input = new FileInputStream(file);
			// 3.进行数据读取
			byte[] data = new byte[1024];
			int foot = 0;// 表示数组操作脚标
			int temp = 0;// 表示每次接受的字节数据
			while ((temp = input.read()) != -1) {
				data[foot++] = (byte) temp;// 有内容进行保存
			}
			// 4.关闭输入流
			input.close();
			System.out.println("【" + new String(data, 0, foot) + "】");
		}

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值