黑马程序员技术交流社区
标题:
为什么显示的是乱码?
[打印本页]
作者:
三生石
时间:
2014-3-1 18:40
标题:
为什么显示的是乱码?
程序如下:
import java.io.*;
class Person implements Serializable
{
private String name;
private int age;
public Person(String name,int age)
{
this.name=name;
this.age=age;
}
public void print()
{
System.out.println("姓名:"+name+"/n年龄:"+age);
}
}
class ObjectOutputTest
{
public static void main(String[] args)throws Exception
{
Person p=new Person("三生石",23);
FileOutputStream fos=new FileOutputStream("d:\\person.txt");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(p);
fos.close();
oos.close();
}
}
运行结果:
QQ图片20140301183844.jpg
(55.06 KB, 下载次数: 7)
下载附件
2014-3-1 18:39 上传
为什么是乱码呢?
作者:
平凡成就非凡
时间:
2014-3-1 18:49
这不是乱码吧,只不过是数据经过啦系统默认的编码表,而生成的。是把你存储的数据查表后的结果。
作者:
Backing
时间:
2014-3-1 19:03
你打开的是".class"文件吧,person.class文件用记事本是打不开的,是给java虚拟机阅读的。
作者:
位俊鹏
时间:
2014-3-1 19:07
你用的是字节输出流,,一个中文代表两个字节,而当你用字节流输出时它会逐个字节进行输出,就会导致乱码.你改一下用字符流试试.
作者:
volvoxc
时间:
2014-3-1 19:31
这个是对象的序列化,是需要在硬盘上存储对象时用的。出现乱码是因为记事本使用默认的字符集对字节进行查表的结果。这个内容不是给我们看的,如果想知道对象的内容,可以用ObjectInputStream中的readObject进行读取。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2