【java】ObjectOutputStream.writeUTF()问题

publicstaticvoidmain(String[]args)throwsFileNotFoundException,IOException{//TODOAuto-... public static void main(String[] args) throws FileNotFoundException, IOException { // TODO Auto-generated method stub ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\\a.txt")); oos.writeUTF("我爱中国");//将“我爱中国”以UTF-8的编码放入a.txt oos.close(); }

oos.writeUTF("我爱中国"); 此方法不是把内容以UTF-8编码到文本中么 然后我得到文本 再打开文本 以UTF-8的编码另存为到桌面 打开怎么是 “ w 鎴戠埍涓浗” 这样的乱码啊 不都是以UTF-8来编码解码的么
展开
 我来答
monical2
2014-06-13
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
// 原因是ObjectOutputStream输出的是对象类型.而非文本类型.如果需要在指定文本
//  文件中放置文字,可以采取如下方式:
PrintWriter pw = new PrintWriter(new FileOutputStream(new File("D:\\a.txt")));
pw.write("我爱中国");
pw.flush();
追问
嗯 这些我都知道 我也知道ObjectOutputStream这个类就是为序列化对象而存在的  但是writeUTF这个是ObjectOutputStream里面很独特的一个方法 他不是输入的对象 他是输出的String里面的值 不是对象 这个值并且是按UTF-8来编译的 但是为啥我用UTF-8的文本却读不到呢
追答
因为你是用文本查看,这样看的是一堆乱码.读写字符串还是用字符流.另外ObjectOutputStream主要是用在网络通信间传递同种编码信息,以什么样的编码写入,则以那样的编码读出.

以上!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式