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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


程序如下:
import java.io.*;
class FileOutputTest
{
        public static void main(String[] args) throws Exception
        {
                FileOutputStream fos=new FileOutputStream("d:\\FileOutput.txt");
                String msg="三生石_Sknishy";
                fos.write(msg.getBytes());
                fos.close();
        }
}

为什么字符串中有中文,以字节形式写到文件中,却没有乱码?求教……

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

2 个回复

正序浏览
乱码的由来,1是因为在编码和解码的过程用的是不同的编码表而造成的。2也有的是在文件数据的输入输出时,造成字节的获取不足。例如,当我们用以byte[]  buf=new byte[5];长度为5的字节数组,来作为缓冲存取以段数据“你们好啊”并打印,存取到“好”这个字我们才存到啦半个。也会出现乱码。3说个特例,“联通”这个词的,二进制表示时,即符合GBK码表也符合UTF-8码表。所以也会出现乱码。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
getBytes方法使用了平台默认的字符集,将字符串编码为byte字节。用软件打开文件时,例如记事本,也会使用默认的字符集进行解码,所以,没有乱码啊。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

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