【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来编码解码的么 展开
oos.writeUTF("我爱中国"); 此方法不是把内容以UTF-8编码到文本中么 然后我得到文本 再打开文本 以UTF-8的编码另存为到桌面 打开怎么是 “ w 鎴戠埍涓浗” 这样的乱码啊 不都是以UTF-8来编码解码的么 展开
展开全部
// 原因是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主要是用在网络通信间传递同种编码信息,以什么样的编码写入,则以那样的编码读出.
以上!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询