码迷,mamicode.com
首页 > 其他好文 > 详细

字节和字符的区别

时间:2014-11-02 21:04:28      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:编程   字符流   java   windows   unicode   

字节和字符的定义在这里我就不写了,百度上有好多大家可以参考一下。

在学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]);
		}
	}
}

程序打印的结果如下:


bubuko.com,布布扣

在字节数组中输出的是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   windows   unicode   

原文地址:http://blog.csdn.net/liangcaiyun2013/article/details/40709975

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!