Xyk.me
2021-04-01 07:52
采纳率: 100%
浏览 64
已采纳

java程序输出数据写入txt文件。编译运行后,打开txt,发现全是乱码,请各位指点一下,谢谢!

import java.io.*;
public  class  DataOut{
       public static  void  main(String args[])throws IOException{
              FileOutputStream fout=new FileOutputStream("data011.txt");
              DataOutputStream out=new DataOutputStream(fout);
              String [ ] items={"面包","笔","被子","牙膏","毛巾"};
              int[] units={2,5,1,2,3};
              float[] prices={1.5f,2.8f,125f,7.2f,5.6f};
              for(int i=0;i<items.length;i++){
                     out.writeUTF(items[i]);
                     out.writeChar('\t');
                     out.writeFloat(prices[i]);
                     out.writeChar('\t');
                     out.writeInt(units[i]);
                     out.writeChar('\t');
             }
                  out.close();
                 fout.close();
       }

}

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • CSDN专家-三岁丫 2021-04-01 11:06
    已采纳

    其实不是乱码,而是 DataOutputStream 的特性,它使用的是一个和平台无关的方式写入到文件中。也就是说里面不是纯文本形式的。即在每个数据前面会带点前缀的形式来标示后面数据的格式。例如:你写的是一个数字,可能前面就会有 0000 0001 这种来标示后面是一个数字,普通的字符串可能就是 0000 0002。

    这只是举例,实际上怎么标示的我也不知道,但是这些标示的字符不管用什么编码去打开都是 '乱码' 因为本来也不是那种有效的字符,所以这个是正常的。

    1 打赏 评论
  • 土拨鼠1号 2021-04-01 08:36

    3 打赏 评论
  • BCS-点心 2021-04-01 08:58

    处理中文使用字符流

    1 打赏 评论
  • Xyk.me 2021-04-01 10:57

    统一回复,谢谢各位的解答。问题已解决,这个问题为数据流(操作基本数据类型的流)——DataOutputSream/DataInputStream

    打赏 评论
  • 有问必答小助手 2021-04-01 11:56

    您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    打赏 评论

相关推荐 更多相似问题