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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴硕 中级黑马   /  2012-10-31 21:51  /  8619 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴硕 于 2012-11-1 17:31 编辑
  1. import java.io.*;

  2. class FileWriterDemo
  3. {
  4.         public static void main(String[] args) throws IOException
  5.         {
  6.                 FileWriter fw = new FileWriter("r:/demo.txt");        //1
  7.                 fw.write("你好");
  8.                 fw.close();
  9.         }
  10. }
复制代码
同样是写入文件,为什么转换流可以指定字符编码,而FileWriter流却不可以在1处指定字符编码

转换流可以
  1. import java.io.*;

  2. class Demo
  3. {
  4.         public static void main(String[] args) throws IOException
  5.         {
  6.                 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("demo.txt"), "utf-8");
  7.                 osw.write("你好");
  8.                 osw.close();
  9.         }
  10. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
邓艳秋 + 1

查看全部评分

4 个回复

倒序浏览
用我这边的角度来看,可能是每个方法的重载不一样。
回复 使用道具 举报
字节是基本单位,而字节流更是直接操作字节的。转换流之所以构造的时候可以指定编码,我想是因为他在构造的时候除了接收字符集外,还同时接收了一个字节流。
回复 使用道具 举报
转换流接受的是字节流,要把字节流转成字符流是要指定字符编码的,如果不指定那么默认的是系统指定的字符编码,这只存在于转换流当中,字符流已经是按某一种编码方式编好的字符了,要是指定字符编码那可定会出现乱吗的。
也就是只有字节流与字符流转换时才涉及到字符编码,默认GBK编码,也可以指定,每种编码的方式都不一样的,编解码不一样就会出现不一样的结果。
回复 使用道具 举报
古银平 发表于 2012-11-1 07:50
转换流接受的是字节流,要把字节流转成字符流是要指定字符编码的,如果不指定那么默认的是系统指定的字符编 ...

明白了,谢谢版主
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马