ObjectOutputStream 乱码

doodlesomething 2015-01-03 12:59:59

FileOutputStream fos = new FileOutputStream(filename);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(new Date());


得到


获取编码:

String defaultCharsetName=Charset.defaultCharset().displayName();
System.out.println("defaultCharsetName:"+defaultCharsetName);



output: defaultCharsetName:UTF-8


Linux 平台(Centos)
vimrc设置:

if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set fileencodings=gbk,utf-8,chinese,latin-1
set termencoding=utf-8
set encoding=utf-8
endif


尝试:

public static void FileWriterTest(String filename) throws IOException {
String s = "try";
String s1 = "agin";
FileWriter fw = new FileWriter(filename);
fw.write(s, 0, s.length());
fw.write(s1,0,s1.length());
fw.flush();
}

正常

请教是哪里的问题?Thanks

...全文
1749 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
doodlesomething 2015-01-03
  • 打赏
  • 举报
回复
引用 1 楼 qq791991 的回复:
Object输出的本来就是字节数据,你硬要用记事本打开
明白了,thanks. 基础太差

        FileInputStream ios = new FileInputStream(filename);
        ObjectInputStream iis = new ObjectInputStream(ios);
        Date date = (Date) iis.readObject();
        System.out.println(date);
正常读出
Ensui 2015-01-03
  • 打赏
  • 举报
回复
Object输出的本来就是字节数据,你硬要用记事本打开

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧