转换流(InputStreamReader OutputStreamWriter)
1、字节输出转换流(OutputStreamWriter)
1 package iochange;
2
3 import java.io.*;
4
5 /*
6 java.io.OutputStreamWriter extends Writer
7
8 OutputStreamWriter: 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。(编码:把能看懂的变成看不懂)
9
10 继承自父类的共性成员方法:
11 - void write(int c) 写入单个字符。
12 - void write(char[] cbuf)写入字符数组。
13 - abstract void write(char[] cbuf, int off, int len)写入字符数组的某一部分,off数组的开始索引,len写的字符个数。
14 - void write(String str)写入字符串。
15 - void write(String str, int off, int len) 写入字符串的某一部分,off字符串的开始索引,len写的字符个数。
16 - void flush()刷新该流的缓冲。
17 - void close() 关闭此流,但要先刷新它。
18 构造方法:
19 OutputStreamWriter(OutputStream out)创建使用默认字符编码的 OutputStreamWriter。
20 OutputStreamWriter(OutputStream out, String charsetName) 创建使用指定字符集的 OutputStreamWriter。
21 参数:
22 OutputStream out:字节输出流,可以用来写转换之后的字节到文件中
23 String charsetName:指定的编码表名称,不区分大小写,可以是utf-8/UTF-8,gbk/GBK,...不指定默认使用UTF-8
24 使用步骤:
25 1.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称
26 2.使用OutputStreamWriter对象中的方法write,把字符转换为字节存储缓冲区中(编码)
27 3.使用OutputStreamWriter对象中的方法flush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程)
28 4.释放资源
29 */
30
31 public class demo02osw {
32 public static void main(String[] args) throws IOException {
33 // OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("utf-8.txt"), "utf-8");
34 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("gbk.txt"), "gbk");
35 osw.write("转换流");
36 osw.flush();
37 osw.close();
38 }
39 }
2、字节输入转换流(InputStreamReader)
1 package iochange;
2
3 /*
4 java.io.InputStreamReader extends Reader
5
6 InputStreamReader:是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。(解码:把看不懂的变成能看懂的)
7
8 继承自父类的共性成员方法:
9 int read() 读取单个字符并返回。
10 int read(char[] cbuf)一次读取多个字符,将字符读入数组。
11 void close() 关闭该流并释放与之关联的所有资源。
12 构造方法:
13 InputStreamReader(InputStream in) 创建一个使用默认字符集的 InputStreamReader。
14 InputStreamReader(InputStream in, String charsetName) 创建使用指定字符集的 InputStreamReader。
15 参数:
16 InputStream in:字节输入流,用来读取文件中保存的字节
17 String charsetName:指定的编码表名称,不区分大小写,可以是utf-8/UTF-8,gbk/GBK,...不指定默认使用UTF-8
18 使用步骤:
19 1.创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称
20 2.使用InputStreamReader对象中的方法read读取文件
21 3.释放资源
22 注意事项:
23 构造方法中指定的编码表名称要和文件的编码相同,否则会发生乱码
24 */
25
26 import java.io.*;
27
28 public class demo01isr {
29 public static void main(String[] args) throws IOException {
30 // InputStreamReader isr = new InputStreamReader(new FileInputStream("utf-8.txt"),"utf-8");
31 InputStreamReader isr = new InputStreamReader(new FileInputStream("gbk.txt"), "gbk");
32 int len = 0;
33 while ((len = isr.read()) != -1) {
34 System.out.print((char) len);
35 }
36 isr.close();
37 }
38 }
# 总结:转换流和字节流看起来类似,但是区别在于字节流每次读取一个字节,每次只能对一个字节进行“翻译”。而转换流可以根据传入的编码格式对多个字节进行“翻译”。
转换流(InputStreamReader OutputStreamWriter)的更多相关文章
- 转换流InputStreamReader & OutputStreamWriter
转换流InputStreamReader & OutputStreamWriter 比如当使用FileReader读取文件时,可以读取IDE默认的UTF-8编码的文件,但是当有一个文件是GBK ...
- [19/04/02-星期二] IO技术_字符流分类总结(含字符转换流InputStreamReader/ OutputStreamWriter,实现字节转字符)
一.概念 ------->1.BufferedReader/BufferedWriter [参考19.03.31文章] *Reader/Writer-------->2.InputStre ...
- Java IO 流 -- 转换流: InputStreamReader OutputStreamWriter
java 中 转换流是以字符流的形式操作字节流,需要注意一下两点: 1.操作内容必须是纯文本 2.指定字符集避免乱码 操作控制台输入输出: try (BufferedReader br = new B ...
- (25)IO流之转换流InputStreamReader和OutputStreamWriter
InputStreamReader:字节到字符的桥梁. OutputStreamWriter:字符到字节的桥梁. 它们有转换作用,而本身又是字符流.所以在构造的时候,需要传入字节流对象进来. 构造函数 ...
- Java API —— 编码 & IO流( InputStreamReader & OutputStreamWriter & FileReader & FileWriter & BufferedReader & BufferedWriter )
1.编码 1)编码表概述 由字符及其对应的数值组成的一张表 2)常见编码表 · ASCII/Unicode 字符集:ASCII是美国标准信息交换码,用一 ...
- JAVA之旅(二十七)——字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律
JAVA之旅(二十七)--字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律 我们继续来聊聊I/O 一.字节流的缓冲区 这 ...
- 转换流--InputStreamReader ,OutputStreamWriter
BufferedReader 字符流,只能装饰字符流,不能装饰字节流.有个重要且好用的方法是readLine()整行读取字符. 但是InputStream是字节流,没有resdLine方法,那么字节流 ...
- Java基础---Java---IO流-----读取键盘录入、InputStreamReader、转换流、OutputStreamWriter、InputStreamReader
字符流: FileReader FileWriter BufferedReader BufferedWriter 字节流: FileInputStream FileOutputStream Buffe ...
- Java IO流学习总结五:转换流-InputStreamReader、OutputStreamWriter
类的继承关系 Reader |__ BufferedReader.StringReader.InputStreamReader |__ FileReader Writer |__ BufferedWr ...
- io流之转换流InputStreamReader、OutputStreamWriter
例子程序: package io; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.File ...
随机推荐
- #2066:一个人的旅行(Dijkstra算法入门题)
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 阿里云 FaaS 架构设计
摘要:希望通过本系列课程,让大家更深入了解阿里云FaaS架构设计,以及神龙高密部署的FaaS介绍. 本篇内容将从2个部分为读者介绍关于阿里云 FaaS 架构设计和神龙高密部署的 FaaS,希望可以让大 ...
- iview upload 上传文件样例
iview upload 组件官网上给出的用法是,选择附件后就立马上传附件.我不想让他立马上传,我想让他和其他一些信息一起上传,百度查了一些资料照大神总结的例子实现了现在分享一下. <Uploa ...
- P1164-DP【橙】
这道题让我更深入的理解了记忆化搜索的过程,既然记忆化搜索的结果要靠返回值来传递,那么记忆化搜索解决问题的必须是倒序的,即记忆化搜索是一个简化问题倒序解决的过程,普通搜索是一个复杂化问题逐步尝试并记录尝 ...
- TortoiseSVN 中文手册下载
TortoiseSVN 链接:https://pan.baidu.com/s/1wAxZST9wKc_HebOrBiewjw 提取码:3gjq
- 凸优化 | Lagrange 对偶:极大极小不等式的证明
背景: Lagrange 对偶:对于优化问题 \[\begin{aligned} &\mathrm{minimize} ~~ &f_0(x) \\ &\mathrm{subje ...
- mysql 主从状态查询及恢复
转载请注明出处: 备机执行主备恢复的命令: 今天早上打开电脑,验证测试环境的服务时,发现服务挂了,当登录服务器查看日志的时候,发现数据库连不上了,紧忙登上数据库服务器,发现数据库mysql 的服务挂了 ...
- 基于python+django的求职招聘网站-网上招聘管理系统设计与实现
该系统是基于python+django的求职招聘网站.网上招聘管理系统.网上人才招聘系统.毕业生求职招聘系统.大学生求职招聘系统.校园招聘系统.企业招聘系统.系统适合场景:大学生.课程作业.毕业设计. ...
- 【MCU】单片机如何检测市电通断?(应用甚广~)
[来源]https://mp.weixin.qq.com/s/TQKtEbxS8WSo3D1MecdMIw
- JS - HTML精确定位
scrollHeight: 获取对象的滚动高度. scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最 ...