JAVA零基础学习笔记13

本文详细介绍了Java中的I/O流,包括缓冲字节流与字符流的应用、转换流处理不同编码、标准输入输出流、打印流与数据流实例、对象流序列化与反序列化,以及随机存取流的使用。通过实际操作演示了文件复制、内容读写和对象存储关键技巧。
摘要由CSDN通过智能技术生成

一、缓冲字节流
二、缓冲字符流
三、转换流
四、标准输入输出流
五、打印流和数据流
六、对象流
七、随机存取流
八、小结

一、缓冲字节流
在这里插入图片描述
(1)缓冲字节输入流
在这里插入图片描述
(2)缓冲字节输出流
在这里插入图片描述
(3)缓冲流进行文件复制
在这里插入图片描述
(4)在main方法中调用
在当前package下创建file文本(已提前建立),建立txt文件并输入点字符(也可以不带后缀,能存文本就行),在左侧列表中右击该文件-Properties(最后一项),查看其绝对路径,然后使用。
在这里插入图片描述
执行结果为:
①打印了文件asd的内容数据;
②将"hello"写入了文件a1中;
③创建了文件asd_1.txt,并复制了asd的内容数据。

二、缓冲字符流
与缓冲字节流步骤相同
代码部分如下:
(1)缓冲字符输入流
在这里插入图片描述
(2)缓冲字符输出流
在这里插入图片描述
(3)缓冲字符流实现文件复制
在这里插入图片描述
(4)在main方法中调用
在这里插入图片描述
执行结果为:
①打印了文件asd的内容数据;
②将"hello"写入了文件asd_2.txt中;
③创建了文件asd_3.txt,并复制了asd的内容数据。

三、转换流
txt和java文件一般由三种格式
ISO8859-1:西欧编码,纯英文
GBK、UTF-8:适用于中文、英文
一般使用UTF-8编码,在eclipse平台默认GBK编码,可以右键文件-Properties(最后一项)查看
在这里插入图片描述
代码部分如下:
在这里插入图片描述
(1)转换字节→字符输入流
在这里插入图片描述
(2)转换字节→字符输出流
在这里插入图片描述
(3)在main方法中调用
在这里插入图片描述
执行结果为:
打印了a1.txt中的字符数据;
创建了a2.txt文件,并向a2.txt输出了"你好啊!"。

四、标准输入输出流
在这里插入图片描述
(1)标准输入流:关键字 InputStreamReader
在这里插入图片描述
(2)练习
在这里插入图片描述
(3)在main方法中调用
在这里插入图片描述
执行结果为:
在平台下方窗口输入文本内容并回车,写入a1.txt文件中。

五、打印流和数据流
在这里插入图片描述
在这里插入图片描述
代码部分如下:
(1)数据输出流:关键字 DataOutputStream
在这里插入图片描述
(2)数据输入流:关键字 DataInputStream
在这里插入图片描述
(3)在main方法中调用
在这里插入图片描述
执行效果为:
在a1.txt中写入数据,但显示乱码;
在平台下方打印了写入的数据:120 。

六、对象流
考虑以下场景,对于Person对象
1、
把这个对象存到电脑硬盘中,硬盘存储基础为二进制,因此要把对象转换为二进制的流,把这个流存到硬盘中;
要使用时,再把流转换为对象;
2、
把这个对象通过网络传到另一台机器,网络通信基础为二进制,因此要把对象转换为二进制的流,把这个流通过网络传输;
接收者使用时要把流转换为对象。
(需要做上面两件事,产生了对象的输入与输出流)
在这里插入图片描述
在这里插入图片描述
一般使用 Serializable
在这里插入图片描述
代码部分如下:
(1)创建Person类,实现Serializable接口
在这里插入图片描述
目前不太懂注释的含义

在这里插入图片描述
代码部分如下:
(2)
创建类Test
对象的序列化:关键字 ObjectOutputStream
在这里插入图片描述
(3)对象的反序列化:关键字 ObjectInputStream
在这里插入图片描述
(4)在main方法中调用
在这里插入图片描述
执行结果为:
在a1.txt中可以查看到序列化后的数据,显示为乱码;
平台下方打印出反序列化后的数据。

七、随机存取流
关键字 RandomAccessFile
在这里插入图片描述
在这里插入图片描述
常用"r",“rw”
代码部分如下:
(1)随机读文件
在这里插入图片描述
(2)随机写文件
在这里插入图片描述

在这里插入图片描述
(3)在main方法中调用
在这里插入图片描述
执行结果为:
成功从第8读取了a1.txt的数据,注意包括换行符等;
成功写入数据到a1.txt。

八、小结
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值