博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java学习笔记39(转换流)
阅读量:5293 次
发布时间:2019-06-14

本文共 1779 字,大约阅读时间需要 5 分钟。

转换流:字符流和字节流之间的桥梁

用于处理程序的编码问题

 

OutputStreamWriter类:字符转字节流

写文本文件:

package demo;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;public class Demo {    public static void main(String[] args) throws IOException {        writeGBK();        writeUTF8();    }    public static void writeGBK() throws IOException {        FileOutputStream fos = new FileOutputStream("d:\\gbk.txt");        OutputStreamWriter osw = new OutputStreamWriter(fos, "GBK");        osw.write("你好");// gbk的一个汉字是2个字节        osw.close();    }    public static void writeUTF8() throws IOException {        FileOutputStream fos = new FileOutputStream("d:\\utf8.txt");        OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");        osw.write("你好");// utf8的一个汉字是3个字节        osw.close();    }}

 

InputStreamReader类:

字节转字符流过程:

这里读取上面写的文本文件:

package demo;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;public class Demo {    public static void main(String[] args) throws IOException {        readGBK();        readUTF8();    }    public static void readGBK() throws IOException {        FileInputStream fis = new FileInputStream("d:\\gbk.txt");        InputStreamReader isr = new InputStreamReader(fis);        char[] ch = new char[1024];        int len = isr.read(ch);        System.out.println(new String(ch, 0, len));    }    public static void readUTF8() throws IOException {        FileInputStream fis = new FileInputStream("d:\\utf8.txt");        InputStreamReader isr = new InputStreamReader(fis, "UTF-8");        char[] ch = new char[1024];        int len = isr.read(ch);        System.out.println(new String(ch, 0, len));    }}

 

这里注意,如果编码集和读取问文本不一致,就会发生乱码或者输出?的问题

 

转载于:https://www.cnblogs.com/xuyiqing/p/8290553.html

你可能感兴趣的文章
MySQL创建数据库和数据库表
查看>>
Codeforces Round #423 (Div. 2) C 思维,并查集 或 线段树 D 树构造,水
查看>>
Educational Codeforces Round 26 D dp,思维
查看>>
Spring Boot使用Servlet、Filter或Listener的方式
查看>>
ecshop中 transport.js/run() error:undefined
查看>>
POJ 1321 棋盘问题(DFS)
查看>>
mybatis中if及concat函数的使用
查看>>
第四周作业
查看>>
在ListView中获取当前行的索引
查看>>
Android 创世纪 第一天
查看>>
[重温数据结构]一种自平衡二叉查找树avl树的实现方法
查看>>
Java并发编程实战 第3章 对象的共享
查看>>
多线程系列(三):线程池基础
查看>>
【转载】数据库读写分离和垂直分库、水平分表
查看>>
String、StringBuffer和StringBuilder的区别
查看>>
mac terminal基本命令
查看>>
IntelliJ Idea 2017 免费激活方法
查看>>
Java适配器模式
查看>>
SetThreadAffinityMask 把线程限定在CPU上运行
查看>>
初学VUE2.0
查看>>