I/O流~

本文介绍了Java中的I/O流体系,包括File类在表示文件和目录中的作用,字节流与字符流的区别,以及节点流和处理流的概念。重点讲解了Print流的输出功能,对象输入输出流在对象序列化和反序列化中的应用,以及transient关键字在控制序列化过程中的作用。

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

一、输入及输出

I : input 输入

O : output 输出

二、File类

File类的对象可以表示文件,还可以表示目录,在程序中一个File类对象可以代

表一个文件或目录。

File对象无法操作文件的具体数据,即不能直接对文件进行读/写操作。

方法:

三、字节流与字符流

I/O流按照读取数据方式不同进行分类可分为字节流与字符流

其中,字符流只能读取纯文本文件

字节流InputStream 常用类 字节输入流 FileInputStream

OutputStream 字节输出流 FileOutputStream

字符流Reader 常用类 字符输入流 FileReader

Writer 字符输出流 FileWriter

四、输入输出节点字节流

五、节点流与处理流

根据封装类型不同流又分为节点流 处理流

节点流:如果流封装的是某种特定的数据源,如文件、字符串、字符串数组等,则称为节点流。

处理流:如果流封装的是其它流对象,称为处理流。 处理流提供了缓冲功能,提高读写效率。

处理流中常用类

缓冲字节输出流 BufferedOutputStream

缓冲字节输入流 BufferedInputStream

缓冲字符输入流 BufferedReader

缓冲字符输出流 BufferedWriter

六、输入输出节点字符流

七、Print流

只做输出没有输入 打印流分为字节打印流和字符打印流

PrintWriter:字符打印流 print方法可以打印各种类型数据

在javaweb项目中,服务器端向客户端响应数据以打印流的方式响应.

八、对象输入输出流

对象的寿命通常随着生成该对象的程序的终止而终止。 有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复。

对象的输入输出流主要的作用是用于写入对象信息与读取对象信息。 对象信息一旦写到文件上那么对象的信息就可以做到持久化。

对象的输出流:ObjectOutputStream

对象的输入流:ObjectInputStream

在ObjectInputStream 中用readObject()方法可以直接读取一个对象,ObjectOutputStream中用writeObject()方法可以直接将对象保存到输出流中

对象的序列化:对象的输出流将指定的对象写入到文件的过程

对象的反序列化:对象的输入流将指定序列化好的文件读出来的过程

被序列化对象的类必须要实现 Serializable接口。 Serializable接口中没有任何

方法。当一个类声明实现Serializable接口后,表明该类可被序列化。在类中可以生成一个编号

eg:private static final long serialVersionUID = -5974713180104013488L;

随机生成 唯一的 serialVersionUID 用来表明实现序列化类的不同版本

间的兼容性。某个类在与之对应的对象已经序列化出去后做了修改,该

对象依然可以被正确反序列化.

如果不显示生成序列号,那么将会隐式生产,但是隐式生成后,类一旦发生

改变,序列号也会随之改变

transient关键字

默认情况下当执行了对象序列化的时候会将类中的全部属性的内容进行全部的序列化操作,

但是很多情况下有一些属性可能并不需要序列化的处理,这个时候就可以在属性的定义上使

用transient关键字来完成了。

eg:private transient String name;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值