Java 字节流的基本使用

本文详细介绍了Java字节流的使用,包括FileInputStream和FileOutputStream的基本操作,如读写文件;BufferedInputStream和BufferedOutputStream的缓冲功能;ByteArrayInputStream和ByteArrayOutputStream在字节数组中的应用;DataInputStream与DataOutputStream处理原生类型;以及ObjectInputStream和ObjectOutputStream的序列化和反序列化。示例代码简洁易懂,适合初学者和进阶者参考。
摘要由CSDN通过智能技术生成

为了提高文章的可阅读性,在本文的示例程序中,对于异常的处理采取了直接抛出,减少了try/catch,使得代码简凑易读。请读者在实操时用try/catch代码块进行处理!

字节流

FileInputStream & FileOutputStream

下面介绍这两个类的使用
新建一个文件"C_01.txt",写入Morning!,共8个字节

FileInputStream

FileInputStream对象在创建时与文件建立了连接,用于从文件中读取原始字节流,因此不适合读取含有非单字节编码的符号(如中文)的文件。

1.流对象与文件建立连接

FileInputStream in = new FileInputStream(new File("C_01.txt"));

2.返回剩余可以被读取(或跳过)的字节数

System.out.println(in.available()); //8

3.判断流对象是否支持mark和reset

System.out.println(in.markSupported()); //false

4.读取并返回下一个字节

 int read = in.read();
 System.out.println((char)(read));   //M
  1. 读取字节流存入bytes数组 最多读入bytes.length大小的内容,返回读取的字节数
byte[] bytes = new byte[10];
System.out.println(in.read(bytes));		//8
System.out.println(new String(bytes));//Morning!  

6.读取指定长度的字节,从字节数组的的指定偏移量开始存放,,返回读取的字节数

int read(byte[] b,int off,int len)

byte[] bytes = new byte[20];                          
System.out.println(in.read(bytes,10,3));        //3   
System.out.println((char)bytes[10]);    //M           
System.out.println((char)bytes[12]);    //r           

7.返回剩余的字节组成的字节数组

byte[] bytes = in.readAllBytes();
System.out.println(new String(bytes));  //Morning!

8.读取指定长度的字节,从字节数组的指定偏移量开始存放,返回读取的字节数

byte[] bytes = new byte[20];
int len = in.readNBytes(bytes,0,2);
System.out.println(len);        //2
System.out.println(new String(bytes));  //Mo

9.读取指定长度的字节,返回一个字节数组

byte[] bytes = in.readNBytes(7);
System.out.println(bytes.length);   //7
System.out.println(new String(bytes));  //Morning

10.跳过n个字节

in.skip(7);
System
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值