EndLess丶Forever 2016-12-28 14:11 采纳率: 75%
浏览 1380
已采纳

JAVA语言中输入输出流问题

“在JAVA中的字符是Unicode编码,是双字节的。InputStream类,是用来处理字节的,并不适合处理字符文本”这句话该怎么理解?这双字节编码、字节处理、字符文本又该怎么理解?我是新手求调教下。

  • 写回答

3条回答 默认 最新

  • tang_cheng 2016-12-29 03:52
    关注

    你的一个字符串就是一个String,每个String里的每个字都是一个char(字符),你可以通过String.charAt()函数获取字符串中的char。这个char包含了所有的英文,中文,符号和其他各国语言。所以它的内部是用一个16位的整数来保存的,这就是文档上说的UNICODE编码。
    我们如果只在程序内部操作字符串,那最多只要关心到char就足够了。但是如果保存到文件中,就要把char转换成byte(字节)。因为在文件中是以字节为单位存储的。
    而且由于现在char转byte的转换方式已经成型了很多编码规范,比如GB-2312, UTF-8, UNICODE等等,因此要在char和byte之间做转换的话,必须要指定转换所使用的编码规范,
    一旦规范写错,转换成的字符串就不是你想要的了。而且几乎无法查错。所以才有这么一句话。
    一般在java里都会在InputStream类外面包一层文本格式转换的流类,然后通过外边那层类来操作流

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿