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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄敏 中级黑马   /  2012-8-19 15:24  /  2010 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.*;
class Test02 {
        /*
        练习,将一个文本数据打印在控制台上。要按照以上格式自己完成三个明确。
        分析:源,文本文件。InputStream,Reader
        是不是纯文本,是,Reader
        设备,硬盘一个文件 FileReader fr = new FileReader("C:\\demo.java")
        需不需要提高效率,需要,BufferedReader br = new BufferReader(fr)


        目标,控制台,OutputStream Writer
        是不是纯文本,是 Writer
        设备 控制台 System.out
        但是源是字符流  需要进行字符流转成字节流,设置指定编码utf-8
        OutputStreamWriter osw = new OutputStreamWriter(System.out,"utf-8")
        需要提高效率 BufferedWriter bw= new BufferedWriter(osw)


        */
        public static void main(String args[]) throws IOException {
                BufferedReader br = new BufferedReader(new FileReader("C:\\Test.txt"));
                BufferedWriter bw= new BufferedWriter(new OutputStreamWriter(System.out,"utf-8"));
                String line= null;
                while((line=br.readLine()) != null){
                        bw.write(line);
                        bw.newLine();
                        bw.flush();
                }
                br.close();
                       
        }
}

上面结果在控制台输出的中文是乱码。我想输出的是中文,但是必须用utf-8输出中文,帮忙改一下,我现在懵了,想不通

评分

参与人数 1技术分 +1 收起 理由
张立江 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
怎么没人帮忙啊
回复 使用道具 举报
我换了GBK,就可以了,不过utf-8就乱
回复 使用道具 举报
因为你的Demo.java是硬盘上的文件,它的默认编码是gbk,
而你取的时候,又设置成了utf-8,
当你不设置的时候,它是按默认编码gbk取出的,就不会出现乱码
而,当你设置成了utf-8,而源文件你又没有在创建的时候,指定编码utf-8,乱码是一定的。

建议你创建一个源文件,并设置其编码为utf-8,这样,输出到控制台的时候,设置成utf-8取出,就不会有乱码了

评分

参与人数 1技术分 +1 收起 理由
张立江 + 1 赞一个!

查看全部评分

回复 使用道具 举报
苑占丽 发表于 2012-8-19 17:13
因为你的Demo.java是硬盘上的文件,它的默认编码是gbk,
而你取的时候,又设置成了utf-8,
当你不设置的时候 ...

谢了,我修改一下
回复 使用道具 举报
控制台字符编码的固定的啊
一般都就是 美国编码OEM  和 中美兼容的OEM/GBK
回复 使用道具 举报
黄敏 发表于 2012-8-19 17:15
谢了,我修改一下

补充一点,如果把源文件设置成utf-8编码,把他写入另一个编码为utf-8文本文件中时,不会有乱码,但是经过控制台输出时,依然会是乱码,所以,如果要在控制台输出,编码不能设置为UTF-8,
回复 使用道具 举报
黄敏 中级黑马 2012-8-19 17:44:21
8#
苑占丽 发表于 2012-8-19 17:23
补充一点,如果把源文件设置成utf-8编码,把他写入另一个编码为utf-8文本文件中时,不会有乱码,但是经过 ...

知道了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马