A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 够了没有 于 2013-11-22 15:36 编辑

import java.io.*;

class IO流  {
        public static void main(String[] args) throws IOException {
                BufferedReader bufr =
                                new BufferedReader(new InputStreamReader(new FileInputStream("Demo.txt"),"gbk"));
                BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out,"utf-8"));
                String buf = null;
                while((buf=bufr.readLine())!=null){
                        bufw.write(buf);
                        bufw.newLine();
                        bufw.flush();
                }
                bufr.close();
                bufw.close();
        }
}
----------------------------------------------------------------------
输入流用的是utf-8编码表,输出流用的是gbk编码表,因为输入流和输出流用的是不同的编码表,
不是应该会出现乱码吗?但是运行得到的结果正常,还是原来的文本文件。

点评

最好附带你输出的结果哦  发表于 2013-11-22 16:40

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 最好带上程序运行结果

查看全部评分

8 个回复

倒序浏览
一直很安静 来自手机 中级黑马 2013-11-22 16:02:24
沙发
你的文件内容是什么?是不是都是字母?
回复 使用道具 举报

本帖最后由 够了没有 于 2013-11-22 15:36 编辑


import java.io.*;

class IO流  {
        public static void main(String[] args) throws IOException {
                BufferedReader bufr =
                                new BufferedReader(new InputStreamReader(new FileInputStream("Demo.txt"),utf-8"));
                BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out,"gbk""));
                String buf = null;
                while((buf=bufr.readLine())!=null){
                        bufw.write(buf);
                        bufw.newLine();
                        bufw.flush();
                }
                bufr.close();
                bufw.close();
        }
}
你换换位置再试试就乱码了 具体原因就是两种编码的范围不同

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 做具体的回答

查看全部评分

回复 使用道具 举报
一直很安静 发表于 2013-11-22 16:02
你的文件内容是什么?是不是都是字母?

文件内容是这个:
abcde1

abc\r\nde2
abcde3
abcde4
2
回复 使用道具 举报
che201311 发表于 2013-11-22 16:31
本帖最后由 够了没有 于 2013-11-22 15:36 编辑

换什么的位置?文件的吗?
回复 使用道具 举报
够了没有 发表于 2013-11-23 17:10
文件内容是这个:
abcde1

都是字母的话 她们的在两个编码表的编码是一样 你把文件内容改成汉字试试
回复 使用道具 举报
一直很安静 发表于 2013-11-23 17:33
都是字母的话 她们的在两个编码表的编码是一样 你把文件内容改成汉字试试 ...

换几个汉字上去就出现乱码了,多谢了
回复 使用道具 举报
够了没有 发表于 2013-11-23 17:42
换几个汉字上去就出现乱码了,多谢了

不客气 帮到你就好了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马