黑马程序员技术交流社区
标题:
IO流的问题
[打印本页]
作者:
章闽
时间:
2012-10-22 18:05
标题:
IO流的问题
public static void main(String[] args) throws IOException {
FileOutputStream fo = new FileOutputStream("D:\\k.txt");
fo.write((int)'好');
fo.close();
}
用java io的字节流向文件存入一个“好”字,文件中出现了乱码,为什么?
如果存入一个“a”就可以!
作者:
宫明星
时间:
2012-10-22 18:09
fo.write((int)'好');
这步的问题,应该是类型转换出的问题。
作者:
唐进
时间:
2012-10-22 18:11
编码的问题,你的记事本是UTF-8编码存的,存取中文的时候会出现乱码
作者:
陆建平
时间:
2012-10-22 18:33
存储“好“时,用的编码是GBK,但用记事本打开时,记事本用的是‘UTF-8,
所以才出现乱码
作者:
陈琦
时间:
2012-10-22 18:37
据我所知
(int)'好'
获得是ANSII码,ANSII码应该不支持汉字,猜的,坐等大神
作者:
qhasilver
时间:
2012-10-22 19:34
public static void main(String[] args) throws IOException {
FileOutputStream fo = new FileOutputStream("D:\\k.txt");//建立输出文件
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fo));//转换输出流
bw.write("你");//将字符串写入缓冲流
bw.flush();//执行缓冲流中的写入
bw.close();//关闭缓冲
fo.close();//关闭文件写入
}
复制代码
作者:
吴兵
时间:
2012-10-22 20:00
FileOutpuStream的write() 方法是将指定的
字节
写入此文件输出流。
写入前应该将字符使用.getBytes()转换为字节
public static void main(String[] args) throws IOException
{
FileOutputStream fo = new FileOutputStream("D:\\k.txt");
fo.write("好".getBytes());
fo.close();
}
复制代码
作者:
杨志男
时间:
2012-10-22 22:04
你用的是字节流,而汉字是字符流,你想以字节流的形式写入两个字符(两个字符代表一个汉字)肯定是不行的,应该把字符转成字节,楼上代码正确。
作者:
张亮
时间:
2012-10-23 22:44
本帖最后由 张亮 于 2012-10-23 22:47 编辑
public static void main(String[] args) throws IOException {
FileOutputStream fo = new FileOutputStream("D:\\k.txt");
fo.write((int)'好');//
是这的问题,‘好’是字符类型,强转成int类型的值是22909,所以写入的就是22909对应的“}”
fo.close();
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2