字符流

字符流

Reader和Writer

Reader是字符输入流的父类;Writer是字符输出流的父类。
字符流是以字符(char)为单位读写数据的。一次处理一个unicode。字符流的底层仍然是基本的字节流。

1 常用方法

Reader的常用方法:
— int read() 读取一个字符,返回的int值“低16”位有效
— int read(char[] chs) 读取chs字符数组的length个字符并存入chs数组,返回值为实际读取到的字符量
Writer的常用方法:
— void write(int c) 写出一个字符,写出给定int值“低16位”表示的字符
— void write(char[] chs) 将给定chs数组中所有字符写出
— void write(String str) 将给定str字符串写出
— void write(char[] chs, int offset, int len) 将chs数组中从offset处开始连续的len个字符写出

2 转换流

字符转换流原理
InputStreamReader字符输入流,使用该流可以设置字符集,并按照指定的字符集从流中按照该编码将字节数据转换为字符并读取。
OutputStreamWriter字符输出流,使用该流可以设置字符集,并按照指定的字符集将字符转换为对应字节后通过该流写出。
指定字符编码
InputStreamReader(InputStream in, String charsetName) 基于给定的字节输入流以及字符编码创建ISR
InputStreamReader(InputStream in) 该构造方法会根据系统默认字符集创建ISR
OutputStreamWriter(OutputStream out, String charsetName) 基于给定的字节输出流以及字符编码创建OSW
OutputStreamWriter(OutputStream out) 该构造方法会根据系统默认字符集创建OSW
使用OSW
在这里插入图片描述
按照指定编码将文本写入文件
在这里插入图片描述
使用ISR

在这里插入图片描述
读取指定编码的文本文件
在这里插入图片描述

3 PrintWriter

PrintWriter是具有自动行刷新的缓冲字符输出流。其提供了比较丰富的构造方法。
— PrintWriter(File file)
— PrintWriter(File file, String charsetName)
— PrintWrite(String fileName)
— PrintWrite(String fileName, String charsetName)
— PrintWriter(OutputStream out)
— PrintWriter(OutputStream out, boolean autoFlush)
— PrintWriter(Writer writer)
— PrintWriter(Writer writer, boolean autoFlush)

其中参数为OutputStream与Writer的构造方法提供了一个可以传入boolean值参数,该参数用于表示PrintWriter是否具有自动行刷新。
print与println方法
PrintWriter提供了丰富的重载print与println方法。其中pringln方法在于输出目标数据后自动输出一个系统支持的换行符。若该流是具有自动行刷新的,那么每当通过println方法写出的内容都会被实际写出,而不是进行缓存。
常用方法:
— void print(int i):打印整数
— void print(char c):打印字符
— void print(boolean b):打印boolean值
— void print(char[] chs):打印字符数组
— void print(double d):打印double值
— void print(float f):打印float值
— void print(long l):打印long值
— void print(String str):打印字符串

使用PW输出字符数据在这里插入图片描述

4 BufferedReader

BufferedReader是缓冲字符输入流,其内部提供了缓冲区,可以提高读取效率。常用构造方法:
— BufferedReader(Reader reader)
在这里插入图片描述
使用BR读取字符串
Buffered提供了一个可以便于读取一行字符串的方法:
— String readLine()
该方法连续读取一行字符串,直到读取到换行符为止,返回的字符串中不包含该换行符。
读取一个文本文件的所有行输出到控制台
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的Unicode字符是指一种能够完整处理Unicode字符的输入输出。在Java中,Unicode字符是以16位无符号整数表示的字符,范围从'\u0000'到'\uFFFF'。而Unicode字符是一种能够读取和写入Unicode字符。 在Java中,我们可以使用InputStream和OutputStream分别创建Unicode字符的输入和输出。Unicode字符输入能够从外部数据源(如文件或网络连接)读取Unicode字符,而Unicode字符输出则能够将Unicode字符写入到目标数据源中。 Java提供了一系列Unicode字符的实现类,如InputStreamReader和OutputStreamWriter。这些类可以将普通的字节转换为Unicode字符,以方便我们对Unicode字符进行读写操作。 使用Unicode字符的好处是它们能够避免由于字符编码问题而导致的数据损坏或读取错误。Unicode字符能够正确地处理各种语言和字符集,包括中文、日文、韩文等。 使用Unicode字符的步骤如下: 1. 创建一个InputStreamReader对象,它将连接到一个字节。 2. 通过InputStreamReader对象提供的方法,可以逐个读取Unicode字符。 3. 创建一个OutputStreamWriter对象,它将连接到一个字节。 4. 通过OutputStreamWriter对象提供的方法,可以逐个写入Unicode字符。 总之,Java中的Unicode字符是一种能够处理Unicode字符的输入输出。使用Unicode字符可以确保对Unicode字符的正确读写,避免字符编码引起的问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值