JAVA基础:字节字符转换流

前言

当我们使用流读取数据时,如果这个数据中含有中文,我们对这个数据进行操作就会出现乱码问题,这时候我们要使用字节字符转换流来处理一下数据。

字节字符转换流

字节字符转换流是一个过程流

字节字符转换流是一个字符流,所有的字符流都继承和writer抽象父类

创建和使用字节字符转换流

首先因为字节字符转换流是一个过程流,他是对数据进行处理的,所有需要一个节点流来和数据源进行连接,我们要创建一个字节输入流,把他作为参数传递给InputStreamReader

字节字符转换流默认是使用utf-8的编码格式,我们可以在构造方法中规定它使用什么编码格式

至于读操作就和字节输入流是一样的了

输出流的操作和上面的一致

因为这是个过程流作用是处理数据,不直接和数据源接触,所有处理完的数据是存在流中的,这是如果流中的数据满了,就会将数据推出,推到节点流然后写入文件,如果没有满就需要我们手动调用flush方法刷新流,手动将数据推出

除了flush,close也能将数据刷新出去,但是close是关闭管道,使用close后这个管道就彻底关闭了,后续无法使用

一般只有在需要更改编码字符集时,才需要使用字符输出流

如果只是输出向文件写入中文,不需要是字符流,直接用字节流就可以

因为在计算机中文件最后也是使用字节的形式存储的

相关推荐
_Jimmy_6 小时前
Nacos的三层缓存是什么
java·缓存
朝新_7 小时前
【实战】动态 SQL + 统一 Result + 登录校验:图书管理系统(下)
xml·java·数据库·sql·mybatis
百***92027 小时前
java进阶1——JVM
java·开发语言·jvm
迦蓝叶7 小时前
RDF 与 RDFS:知识图谱推理的基石
java·人工智能·数据挖掘·知识图谱·语义网·rdf·rdfs
百锦再7 小时前
选择Rust的理由:从内存管理到抛弃抽象
android·java·开发语言·后端·python·rust·go
yaoxin5211238 小时前
238. Java 集合 - 使用 ListIterator 遍历 List 元素
java·python·list
爱分享的Shawn_Salt8 小时前
IntelliJ IDEA初始化指南
java·ide·intellij-idea
Dxxyyyy8 小时前
零基础学JAVA--Day32(ArrayList底层+Vector+LinkedList)
java·开发语言
Pluchon8 小时前
硅基计划6.0 柒 JavaEE 浅谈JVM&GC垃圾回收
java·jvm·数据结构·java-ee·gc
whatever who cares8 小时前
在Java/Android中,List的属性和方法
android·java