java第二十节-字节流FileOutputStream-读

本文详细介绍了Java中字节流的基本概念及其使用方法,包括InputStream和OutputStream的实现原理,以及如何通过FileInputStream来读取文件内容并以16进制形式输出。通过两个示例展示了单字节读取和批量读取的方法。

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

一、字节流、字符流

1、字节流

     a、Inputstream 、Outputstream

     Inputstream  :抽象了应用程序读取数据的方式  

     Outputstream  :  抽象了应用程序写出数据的方式

     b、EOF=End  得到-1就读到结尾

     c、输入流的基本方法

     int  b = in.read();读取一个字节无符号填充到整型的低八位 

     in.read(byte[] buf)

     in.read(byte[] buf,int start,int size)从start开始写,写size个字节

     d、输出流基本方法

     out.write(int b)写一个byte到流,b的低8位

     out.write(byte[] buf)将buf字节数组写到流

     out.write(byte[] buf,int start,int size)

    e、FileInputeStream     具体实现了在文件上读取数据


二、字节流读取实例


package com.file;

import java.io.FileInputStream;
import java.io.IOException;

public class IoUtil {
	/*
	 * 读取文件内容,以16进制方式输出
	 * 10byte换行
	 * */
	public static void printHex(String fileName) throws IOException{
		//把文件作为字节流进行操作 
		FileInputStream in = new FileInputStream(fileName);
		 int b;
		 int i=-1;
		 //循环输出
		 while ((b=in.read())!=-1){
			 System.out.print(Integer.toHexString(b)+"  ");//以16进制输出
			 if (i++%10==0){
				 System.out.println();
			 }
		 }
		 in.close();//关闭
	}  
}


public static void printHexByte(String fileName) throws IOException{
		FileInputStream in = new FileInputStream(fileName);
		//文件读到字节数组中
		byte[] buf = new byte[20*1024];
		//从in中批量读取字节,放到buf数组中,
		//从0个开始放,最多放buf.length个,
		//返回的是读到的字节的个数
		int bytes = in.read(buf,0,buf.length);
		int j=1;
		for (int i=0; i<bytes; i++){
		    if (buf[i]<0xf){
		    	System.out.print("0");
		    }
		    System.out.print(Integer.toHexString(buf[i])+"  ");
		    if (i++%10==0){
				 System.out.println();
			 }
		}
		in.close();
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值