概述
一、位和字节
1字节(byte)=8位(bit)
1KB=1024B
1Mb=1024KB
1字符=2字节
所有文件储存都是以字节(byte)存的。
磁盘保留的是:将字符编码成字节,再存;而不是存文件的字符。
读取文件(特别文本文件):一个字节一个字节地读取,形成字节序列。
注:二进制0101010中0或1所占的就是1个位(bit)
二、字节流和字符流
(1)程序中的数据都是都是以流的方式进行传输和保存的
(2)使用数据(读取数据):输入流
保存数据:输出流
(3)流保存的都是字节文件
(4)java.io包中操作文件主要包括两大类:字节流,字符流。
字节流(处理字节或二进制对象)
<1>输出数据outputstream
<2>输入数据inputstream
字符流(处理字符或字符串)
<1>输出数据writer
<2>输入数据reader
注:outputstream、inputstream、writer、reader都是抽象类
(5)字符流:处理的单元为2字节的unicode字符,处理字符、字符数组、字符串
字节流:处理的单元为1字节,操作字节、字节数组;可用于任何类型地对象,包括二进制对象提供了任何类型的IO操作功 能,但不能直接处理Unicode字符。
字符流(对多国语言支持性好) : 是java虚拟机将字节 转化为2个字节的 unicode字符 为单位的字符而成的。
字节流:音频文件、图片、歌曲
字符流:中文文本
(6)开发中的汉字问题(很多的数据都是文本):字节流按照字节处理(inputstream、outputstream)-----字符流按照虚拟机的encode处理(inputstreamreader、outputstreamwriter)
汉字问题中,字符流和字节流直接按的转化,实际上是通过byte[]和string来关联的
三、字节流和字符流之间的区别
(1)字节流不用到缓冲区,字符流用到缓冲区
(2)字节流操作文件,即使采用close方法关闭资源,文件可以输出
而字符流不调用close方法的花,不会输出任何内容,因为其使用缓冲区
(使用flush方法强制刷新缓冲区,才能在不close的情况下输出内容)
(3)字节的操作是最多的:硬盘保存文件,文件传输,图片
字符:只有再内存中才会形成
(4)java程序实现拷贝拷贝功能,用字节流,并边读边写(节省内存)
最后
以上就是知性荷花为你收集整理的位(bit)字节(byte)字节流 字的全部内容,希望文章能够帮你解决位(bit)字节(byte)字节流 字所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复