我是靠谱客的博主 知性荷花,最近开发中收集的这篇文章主要介绍位(bit)字节(byte)字节流 字,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

一、位和字节

 

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)字节流 字所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部