黑马程序员技术交流社区
标题:
FileWriter字符流为什么不能指定字符编码
[打印本页]
作者:
吴硕
时间:
2012-10-31 21:51
标题:
FileWriter字符流为什么不能指定字符编码
本帖最后由 吴硕 于 2012-11-1 17:31 编辑
import java.io.*;
class FileWriterDemo
{
public static void main(String[] args) throws IOException
{
FileWriter fw = new FileWriter("r:/demo.txt"); //1
fw.write("你好");
fw.close();
}
}
复制代码
同样是写入文件,为什么转换流可以指定字符编码,而FileWriter流却不可以在1处指定字符编码
转换流可以
import java.io.*;
class Demo
{
public static void main(String[] args) throws IOException
{
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("demo.txt"), "utf-8");
osw.write("你好");
osw.close();
}
}
复制代码
作者:
邓艳秋
时间:
2012-10-31 22:41
用我这边的角度来看,可能是每个方法的重载不一样。
作者:
王晓州
时间:
2012-11-1 00:47
字节是基本单位,而字节流更是直接操作字节的。转换流之所以构造的时候可以指定编码,我想是因为他在构造的时候除了接收字符集外,还同时接收了一个字节流。
作者:
古银平
时间:
2012-11-1 07:50
转换流接受的是字节流,要把字节流转成字符流是要指定字符编码的,如果不指定那么默认的是系统指定的字符编码,这只存在于转换流当中,字符流已经是按某一种编码方式编好的字符了,要是指定字符编码那可定会出现乱吗的。
也就是只有字节流与字符流转换时才涉及到字符编码,默认GBK编码,也可以指定,每种编码的方式都不一样的,编解码不一样就会出现不一样的结果。
作者:
吴硕
时间:
2012-11-1 17:30
古银平 发表于 2012-11-1 07:50
转换流接受的是字节流,要把字节流转成字符流是要指定字符编码的,如果不指定那么默认的是系统指定的字符编 ...
明白了,谢谢版主
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2