Java 学习(24)---(IO流之字符流)

简介: 字符流字节流操作中文数据不是特别的方便,所以就出现了转换流。转换流的作用就是把字节流转换字符流来使用。转换流其实是一个字符流字符流 = 字节流 + 编码表编码表A:就是由字符和对应的数值组成的一张表...

字符流

字节流操作中文数据不是特别的方便,所以就出现了转换流。转换流的作用就是把字节流转换字符流来使用。

转换流其实是一个字符流

字符流 = 字节流 + 编码表

编码表

A:就是由字符和对应的数值组成的一张表

B:常见的编码表 ASCII

ISO-8859-1 GB2312 GBK GB18030 UTF-8

C:字符串中的编码问题编码

String -- byte[]

解码

byte[] -- String

IO 流中的编码问题

A:OutputStreamWriter

OutputStreamWriter(OutputStream os): 默 认 编 码 , GBK OutputStreamWriter(OutputStream os,String charsetName): 指定编码。

B:InputStreamReader

InputStreamReader(InputStream is): 默 认 编 码 , GBK InputStreamReader(InputStream is,String charsetName): 指定编码

C:编码问题其实很简单编码只要一致即可

字符流

Reader

    |--InputStreamReader

    |--FileReader

    |--BufferedReader

Writer

    |--OutputStreamWriter

    |--FileWriter

    |--BufferedWriter

案例:复制文本文件 (5 种方式 )

//	基本字符流一次读写一个字符
privatestaticvoid method1(String srcString, String destString) throws IOException {
FileReader fr =	newFileReader(srcString);
FileWriter fw =	newFileWriter(destString);
int	ch = 0;
while	((ch = fr.read()) != -1) { fw.write(ch);
}
fw.close();
fr.close();
}
//	基本字符流一次读写一个字符数组
privatestaticvoid method2(String srcString, String destString) throws	IOException {
FileReader fr =	newFileReader(srcString); FileWriter fw =	newFileWriter(destString);

char  [] chs =	newchar [1024]; int	len = 0;
while	((len = fr.read(chs)) != -1) { fw.write(chs, 0, len);
}

fw.close();
fr.close();
}
//	字符缓冲流一次读写一个字符
privatestaticvoid method3(String srcString, String destString) throws	IOException {
BufferedReader br = newBufferedReader(newFileReader(srcString));
BufferedWriter bw = newBufferedWriter(newFileWriter(destString));
int	ch = 0;
while	((ch = br.read()) != -1) { bw.write(ch);
}
bw.close();
br.close();
}
//	字符缓冲流一次读写一个字符数组
privatestaticvoid method4(String srcString, String destString) throws	IOException {
BufferedReader br = newFileReader(srcString));
newBufferedReader(newFileWriter(destString));
char [] chs = newchar [1024];
int	len = 0;
while	((len = br.read(chs)) != -1) {
bw.write(chs, 0, len);
}

bw.close();
br.close();
}
//	字符缓冲流一次读写一个字符串
privatestaticvoid method5(String srcString, String destString) throws	IOException {
BufferedReader br = newFileReader(srcString));
newBufferedReader(newFileWriter(destString));
String line = null;
while	((line = br.readLine()) !=	null) { bw.write(line);
bw.newLine();
bw.flush();
}
目录
相关文章
|
15天前
|
消息中间件 前端开发 Java
java学习路径
【4月更文挑战第9天】java学习路径
17 1
|
15天前
|
设计模式 前端开发 安全
Java是一种广泛使用的编程语言,其学习路径可以大致分为以下几个阶段
【4月更文挑战第9天】Java是一种广泛使用的编程语言,其学习路径可以大致分为以下几个阶段
15 1
|
5天前
|
JavaScript Java 测试技术
基于Java的驾考自主学习预约平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的驾考自主学习预约平台的设计与实现(源码+lw+部署文档+讲解等)
16 0
|
6天前
|
JavaScript Java 测试技术
基于Java的精品课程在线学习系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的精品课程在线学习系统的设计与实现(源码+lw+部署文档+讲解等)
25 1
|
6天前
|
JavaScript Java 测试技术
基于Java的中文学习系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的中文学习系统的设计与实现(源码+lw+部署文档+讲解等)
22 0
|
12天前
|
Java 存储
键值之道:深入学习Java中强大的HashMap(二)
键值之道:深入学习Java中强大的HashMap
20 0
键值之道:深入学习Java中强大的HashMap(二)
|
14天前
|
JavaScript Java 测试技术
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
30 0
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
|
1月前
|
存储 Java 数据处理
|
1月前
|
Java API
java中IO与NIO有什么不同
java中IO与NIO有什么不同
|
3月前
|
存储 Java 数据安全/隐私保护
从零开始学习 Java:简单易懂的入门指南之IO字符流(三十一)
从零开始学习 Java:简单易懂的入门指南之IO字符流(三十一)