Java中的IO流之随机访问流,转换流以及打印流

各位小伙伴

今天我们来看看下面的流

随机访问流


RandomAccessFile 是 object 的子类,此类的实例支持对随机访问文件的读取和写入。


在执行 new RandomAccessFile() 方法之后,若文件不存在会自动创建,存在则不创建。


该类内部既封装了字节输入流,又封装了字节输出流。若用 write() 方法写整数,每次只写它的最后一个字节。而采用 writeInt() 方法,则可把一个整数完整地写入。 通过 seek() 方法设置数据的指针就可以实现对文件数据的随机读写。


来一起看一下构造方法:

640?wx_fmt=png


其中mode的取值以及对应的意义~

640?wx_fmt=png


下面我们来写一下代码:

640?wx_fmt=jpeg


来试试seek()方法

640?wx_fmt=png

转换流

InputStreamReader 

OutputStreamWriter

转换流功能1:

充当字节流与字符流之间的桥梁


下面我们来写一个案例,需求:

模拟英文聊天程序,

要求:

1)从键盘录入英文字符,每录一行就把它转成大写输出到控制台;

2)保存聊天记录到字节流文件。


代码实现:

640?wx_fmt=jpeg


转换流功能2:

字符编码转换


在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码

640?wx_fmt=png


640?wx_fmt=png


采用转换流以指定编码方式解码

InputStreamReader + FileInputStream +指定编码表

640?wx_fmt=png


采用转换流以指定编码方式编码

OutputStreamWriter + FileOutputStream +指定编码表

640?wx_fmt=jpeg


打印流

PrintStream和PrintWriter


打印流的特点:

1)只有输出没有输入。PrintStream是字节打印流,PrintWriter是字符打印流。

2)能够方便地打印各种数据“值表示形式”,提供了一系列的打印功能(只有它有,其它流都没有。)

3)和其他输出流不同,它永远不会抛出IOException异常(构造方法除外),异常内部解决且设置了内部标志。

4)可创建具有自动刷新的功能,可使用带换行符的println()方法。

5)(在构造方法中)可以指定字符集编码的。


代码示例:

640?wx_fmt=jpeg


那么今天就到这里了

伙伴们要有个印象

以后需要用的时候

要知道有这些流的存在呀


u1F4AA.0.png扩展阅读

Java中的IO流之数据流和对象流

Java中的IO流之字符流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值