字节和字符的区别
来源:互联网 发布:qq网络音乐链接 编辑:程序博客网 时间:2024/06/01 23:34
字节和字符的定义在这里我就不写了,百度上有好多大家可以参考一下。
在学Java IO的时候,涉及到字节流和字符流,我就很郁闷字节数组里存储的数据到底是什么样子的。。。好多次和男朋友讨论到这个概念,我还是糊里糊涂的,最后也不好意思问他了。。。嘿嘿嘿。。自己写了个小程序测试一下,对字节和字符的理解或许有帮助:
public class BAndC{public static void main(String[] args){String data = "Hello";byte[] dataB = data.getBytes();for(int i = 0 ; i < dataB.length ; i++){System.out.println("Hello在字节数组中:" + dataB[i]);}char[] dataC = data.toCharArray();for(int m = 0 ; m < dataC.length; m++){System.out.println("Hello在字符数组中:" +dataC[m]);}}}
程序打印的结果如下:
在字节数组中输出的是Hello每一个字母对应的ASCII码,于是问题又出来了,getBytes()方法返回的是用系统默认的字符编码格式的字节数组,但度娘说windows系统默认的编码格式是unicode,但是unicode是双字节啊,为什么输出的会是ascii码呢?ascii是单字节的啊?
当我调用System.getProperty("file.encoding");时,打印结果却是GBK。度娘又说此方法返回的属性不是系统默认的字符编码,而是程序的入口函数所在的类的保存编码http://www.cnblogs.com/silentjesse/archive/2011/11/04/2235674.html,此二者还不是一回事。
最终我还是不明白为什么会打印出ascii码。先在这小记,路过的大神如果晓得其中的缘由,请留言,谢谢!!
今天早上在看数据输入输出流时,书上有这么一句话:java中的字符是unicode编码,是双字节的,writeBytes只是将字符串中的每一个字符的低字节内容写入目标设备中;而writeChars将字符串中的每一个字符的两个字节的内容都写到目标设备中;writeUTF将字符串按照UTF编码后的字节长度写入目标设备,然后才是每一个字节的UTF编码。这就是原因了吧。
- 字节和字符的区别
- 字符和字节的区别
- 字符和字节的区别
- 字符和字节的区别
- 字符和字节的区别
- 字节和字符的区别
- 字符和字节的区别
- 字节和字符的区别
- 字符和字节的区别
- 字符流和字节流的区别
- 字符流和字节流的区别
- 字节流和字符流的区别
- 字节流和字符流的区别
- 字节流和字符流的区别
- 字节流和字符流的区别
- 字符流和字节流的区别
- 字节流和字符流的区别
- 字节流和字符流的区别
- 惨烈遭遇一个极品公司
- [Leetcode]Valid Parentheses
- const与重载
- vijos P1317 开心的金明 C语言 源码(动态规划)
- PHP中try{}catch{}的具体用法详解
- 字节和字符的区别
- 程序猿之--想不懂,我的几个问题,有没有人愿意交流
- Hadoop 在 windows 7 64位的配置(一)|非cygwin
- 在GridView中获取当前选中行内某列的值
- istringstream、ostringstream、stringstream 类介绍
- 设计文章汇总
- 解决VMware下ubuntu无法上网问题cable unplugged
- mysql对GIS的支持 & oracle 空间数据库说明
- 【白云观寻道】诗一首