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)的更多相关文章

  1. 转换流InputStreamReader & OutputStreamWriter

    转换流InputStreamReader & OutputStreamWriter 比如当使用FileReader读取文件时,可以读取IDE默认的UTF-8编码的文件,但是当有一个文件是GBK ...

  2. [19/04/02-星期二] IO技术_字符流分类总结(含字符转换流InputStreamReader/ OutputStreamWriter,实现字节转字符)

    一.概念 ------->1.BufferedReader/BufferedWriter [参考19.03.31文章] *Reader/Writer-------->2.InputStre ...

  3. Java IO 流 -- 转换流: InputStreamReader OutputStreamWriter

    java 中 转换流是以字符流的形式操作字节流,需要注意一下两点: 1.操作内容必须是纯文本 2.指定字符集避免乱码 操作控制台输入输出: try (BufferedReader br = new B ...

  4. (25)IO流之转换流InputStreamReader和OutputStreamWriter

    InputStreamReader:字节到字符的桥梁. OutputStreamWriter:字符到字节的桥梁. 它们有转换作用,而本身又是字符流.所以在构造的时候,需要传入字节流对象进来. 构造函数 ...

  5. Java API —— 编码 & IO流( InputStreamReader & OutputStreamWriter & FileReader & FileWriter & BufferedReader & BufferedWriter )

    1.编码     1)编码表概述         由字符及其对应的数值组成的一张表     2)常见编码表         · ASCII/Unicode 字符集:ASCII是美国标准信息交换码,用一 ...

  6. JAVA之旅(二十七)——字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律

    JAVA之旅(二十七)--字节流的缓冲区,拷贝mp3,自定义字节流缓冲区,读取键盘录入,转换流InputStreamReader,写入转换流,流操作的规律 我们继续来聊聊I/O 一.字节流的缓冲区 这 ...

  7. 转换流--InputStreamReader ,OutputStreamWriter

    BufferedReader 字符流,只能装饰字符流,不能装饰字节流.有个重要且好用的方法是readLine()整行读取字符. 但是InputStream是字节流,没有resdLine方法,那么字节流 ...

  8. Java基础---Java---IO流-----读取键盘录入、InputStreamReader、转换流、OutputStreamWriter、InputStreamReader

    字符流: FileReader FileWriter BufferedReader BufferedWriter 字节流: FileInputStream FileOutputStream Buffe ...

  9. Java IO流学习总结五:转换流-InputStreamReader、OutputStreamWriter

    类的继承关系 Reader |__ BufferedReader.StringReader.InputStreamReader |__ FileReader Writer |__ BufferedWr ...

  10. io流之转换流InputStreamReader、OutputStreamWriter

    例子程序: package io; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.File ...

随机推荐

  1. Python | BitMap算法及其实现

    BitMap概述 本文介绍 BitMap 算法的应用背景,算法思想和相关实现细节. 概括而言,BitMap 主要用来解决海量数据中元素查询,去重.以及排序等问题.这里对海量数据场景的强调,似乎暗示了这 ...

  2. A*(A star)搜索总结

    定义 先复制一则定义 A*算法在人工智能中是一种典型的启发式搜索算法 启发中的估价是用估价函数表示的: h(n)=f(n)+g(n) 其中f(n)是节点n的估价函数 g(n)表示实际状态空间中从初始节 ...

  3. Windows环境下,解决无法使用ping命令

    众所周知,ping命令是个非常实用的网络命令:有时,我们会发现在电脑中无法使用ping命令,一般来说,是由于电脑的环境变量出了问题,本文将介绍如何解决这个问题. 1.一般出现ping命令无法使用的情况 ...

  4. AtCoder Beginner Contest 188 题解

    AtCoder Beginner Contest 188 A,B很简单就不多说 C - ABC Tournament 找出前一半的最大值和后一半的最大值,二者中较小的那一个对应的序号就是最后的答案. ...

  5. 【真送礼物】1 分钟 Serverless 极速部署盲盒平台,自己部署自己抽!

    当前,Serverless 在移动应用.游戏等场景已经实现规模化应用,Serverless 技术可以更好的帮助开发者只关注应用创新,减少对开发与运维的过度关注. 为了让更多开发者在真实场景中体验 Se ...

  6. SpringBoot Serverless 实战 | 监控调试

    SpringBoot 是基于 Java Spring 框架的套件,它预装了 Spring 的一系列组件,让开发者只需要很少的配置就可以创建独立运行的应用程序.在云原生的世界,有大量的平台可以运行 Sp ...

  7. js md5 和java md5后的值不一样

    开发发现js 对字符串md5 和 java对字符串md5 计算的结果居然不一样,后来找了一个匹配的这里记录一下 注:加密的对象中不能有空格,有空格md5后的结果就不一致,都是眼泪.. js md5算法 ...

  8. C# WPF侧边栏导航菜单(Dropdown Menu)

    时间如流水,只能流去不流回! 点赞再看,养成习惯,这是您给我创作的动力! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform.W ...

  9. 【SHELL】查找包含指定字符串的目录、在找出的路径中找出指定格式的文件、并统计出数量

    查找包含字符串"skull"的目录.在找出的路径中找出格式".c/.cpp/.h"的文件.并统计出数量 find . -path ./out -prune -o ...

  10. Vue - 父子级的相互调用

    父级调用子级 父级: <script> this.$refs.child.load(); 或 this.$refs.one.load(); </script> 子级: < ...