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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© steven152 中级黑马   /  2014-8-19 22:31  /  1473 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看视频day21-6时,毕老师的结果是:“你好”,下面我跟着敲的代码为什么读取的结果却是乱码?求教大神!
import java.io.*;
class EncodeStream
{
    public static void main(String[] args)throws IOException
  {
        //writeText();
            readText();
  }
    public static void readText() throws IOException
    {
        InputStreamReader isr = new InputStreamReader(new FileInputStream("gbk.txt"),"GBK");
        char[] buf = new char[10];
        int len = isr.read(buf);
        String str = new String (buf,0,len);
        System.out.println(str);
        isr.close();
    }
    public static void writeText()throws IOException
    {
        OutputStreamWriter osw = new

OutputStreamWriter(new FileOutputStream("utf.txt"),"UTF-8");
        osw.write("你好");
        osw.close();
    }
}

3 个回复

正序浏览
没错,我看了下文件,是UTF-8,我说怎么回事,谢谢大家!
回复 使用道具 举报
你确定你的gbk.txt是GBK? 我手动建了个gbk.txt然后你的代码可以读出来。你看下会不会是你用的utf-8写的文件。
回复 使用道具 举报
     OutputStreamWriter osw = new  OutputStreamWriter(new FileOutputStream("utf.txt"),"UTF-8");   InputStreamReader isr = new InputStreamReader(new FileInputStream("gbk.txt"),"GBK");这两句伽马表类别不一样,我感觉你是否要换同意类别呢,是不是都换成utf-8你试一试,我也不太懂,还没看到哪里 希望能帮到你。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马