栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于Java字符流

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于Java字符流

概述

诞生背景:
    字节流对所有的文件操作都是按照一个个二进制位的形式
    然而,字节流在操作字符时,可能会有某些字符导致的乱码,所以由字节流引申出了字符流

 功能:
    把读取到的二进制数据进行对应的编码和解码工作;从而把二进制位转换成程序员期待的字符集
    字符流=字节流+编码(解码)

弊端:
    一:无法拷贝图片和视频。
    二:拷贝文件使用字节流而不使用字符流,因为字符流读文件涉及到解码,会先解码,写文件的时候又涉及到编码,这些操作多余,而且读和写的码表不对应还容易引发问题。

成员结构图  字符输入流

字符输出流

常用的字符流 字符输入流 Reader

概述:

        用于读取字符流的抽象类。是字符输入流类的祖类。

Reader中有读取字符的三种方法:

intread​()

读一个字符

intread​(char[] cbuf)

将字符读入数组。

abstract intread​(char[] cbuf, int off, int len)

将字符读入数组的一部分。

InputStreamReader

概述:

        InputStreamReader是从字节流到字符流的桥梁:它读取字节,并使用指定的charset将其解码为字符。 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。

构造方法(常用的):

注意!:传入的是一个字节输入流对象

InputStreamReader​(InputStream in)

创建一个使用默认字符集的InputStreamReader。

InputStreamReader​(InputStream in, String charsetName)

创建一个使用命名字符集的InputStreamReader。

常用方法:

intread​()

读一个字符

intread​(char[] cbuf, int offset, int length)

将字符读入数组的一部分。

FileReader

概述:

         继承自InputStreamReader,FileReader 可以把FileInputStream中的字节数据转成根据字符编码方式转成字符数据流。在字符缓冲流的构造方法中有使用到。

构造方法:

FileReader​(File file)

创建一个新的 FileReader ,给出 File读取。

FileReader​(String fileName)

创建一个新的 FileReader ,给定要读取的文件的名称。

特有方法:

继承了父类中的方法没有特有的方法。

BufferedReader

概述:

        从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。可以指定缓冲区大小,或者可以使用默认大小。 默认值足够大,可用于大多数用途。

构造方法:

BufferedReader​(Reader in)

创建使用默认大小的输入缓冲区的缓冲字符输入流。

BufferedReader​(Reader in, int sz)

创建使用指定大小的输入缓冲区的缓冲字符输入流。

特有方法:

StringreadLine​()

读一行文字。

字符输出流 Writer

概述:

        用于写入字符流的抽象类。是所有字符输出流的祖类。

Writer中定义了写入字符的五种方法:

voidwrite​(int c)

写一个字符

voidwrite​(String str)

写一个字符串

voidwrite​(String str, int off, int len)

写一个字符串的一部分。

voidwrite​(char[] cbuf)

写入一个字符数组。

abstract voidwrite​(char[] cbuf, int off, int len)

写入字符数组的一部分。

还有用于刷写的flush() 方法。

OutputStreamWriter

概述:

        OutputStreamWriter是从字符流到字节流的桥梁:使用指定的charset将写入的字符编码为字节。 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。

构造方法:

注!:这里需要传入一个字节输出流。

OutputStreamWriter​(OutputStream out)

创建一个使用默认字符编码的OutputStreamWriter。

OutputStreamWriter​(OutputStream out, String charsetName)

创建一个使用命名字符集的OutputStreamWriter。

FileWriter

概述:

         继承自OutputStreamReader,FileWriter 可以把FileOutputStream中的字节数据转成根据字符编码方式转成字符数据流。在字符缓冲流的构造方法中有使用到。

构造方法:

FileWriter​(File file)

给一个File对象构造一个FileWriter对象。

FileWriter​(String fileName)

构造一个给定文件名的FileWriter对象。

BufferedWriter

概述:

        将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入。可以指定缓冲区大小,或者可以接受默认大小。 默认值足够大,可用于大多数用途。

构造方法:

BufferedWriter​(Writer out)

创建使用默认大小的输出缓冲区的缓冲字符输出流。

BufferedWriter​(Writer out, int sz)

创建一个新的缓冲字符输出流,使用给定大小的输出缓冲区。

 特有方法:

voidnewline​()

写一行行分隔符。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/306935.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号