Java I/O & 序列化:详述Java的I/O流模型,File类用法,以及Java序列化机制

1. Java I/O

Java I/O概述:

 

Java的I/O系统非常强大和灵活,它的设计模式基于装饰器模式。主要包括:字节流(InputStream / OutputStream)、字符流(Reader / Writer)、缓冲流(Buffered)、对象流(Object I/O)以及数据流(Data I/O)。它们都在java.io包下。

 

字节流和字符流:

 
  • 字节流(InputStream / OutputStream):是最基础的I/O流,它们以字节为单位进行操作,属于低级流。这种方式适合处理所有类型的数据,如:文本、图片、音频、视频等。但操作文本文件时可能会出现中文乱码问题,因为一个中文在UTF-8编码中可能会占用多个字节。

  • 字符流(Reader / Writer):它们是处理字符数据的,以字符为单位进行操作。相较于字节流,字符流可以直接读取或写入字符的方法,无需自己负责字符和字节的转换,使得读写字符数据更加方便。但字符流只能处理文本文件,不能处理比如图片、音频等二进制文件。

 

输入/输出流:

 
  • 输入流:Java的输入流主要用于从源(文件、网络连接、内存缓存、控制台等)读取数据。我们可以使用InputStream或Reader的方法(例如,read())从输入流中读取数据。

  • 输出流:Java的输出流主要用于向目标(文件、网络连接、内存缓存、控制台等)写入数据。我们可以使用OutputStream或Writer的方法(例如,write())向输出流中写入数据。

 

缓冲流:

 

缓冲流(BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter)在创建时会创建一个内部缓冲区。当我们读取数据时,缓冲流会一次读取多个字节的数据到缓冲区,然后逐个返回这些数据;当我们写入数据时&#x

  • 38
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哎 你看

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值