java 中字节和字符的详解

一、概念

Java中对文件的操作是以流的方式进行的。流是Java内存中的一组有序数据序列。Java将数据从源(文件、内存、键盘、网络)读入到内存中,形成了流,然后将这些流还可以写到另外的目的地(文件、内存、控制台、网络),之所以称为流,是因为这个数据序列在不同时刻所操作的是源的不同部分。流的分类,Java的流分类比较丰富,刚接触的人看了后会感觉很晕。流分类的方式很多:

二、分类

1、按照输入的方向分,输入流和输出流,输入输出的参照对象是Java程序。2、按照处理数据的单位不同分,字节流和字符流,字节流读取的最小单位是一个字节(1byte=8bit),而字符流一次可以读取一个字符(1char = 2byte = 16bit)。

3、按照功能的不同分,分节点流和处理流,节点流是直接从一个源读写数据的流(这个流没有经过包装和修饰),处理流是在对节点流封装的基础上的一种流,FileInputStream是一个接点流,可以直接从文件读取数据,但是BufferedInputStream可以包装FileInputStream,使得其有缓冲功能。

其实除了以上三种分类外,还有一些常常听到的一些分类比如:对象流、缓冲流、压缩流、文件流等等。其实都是节点流和处理流的子分类。当然你也可以创建新的流类型,只要你需要。

三、流分类的关系

不管流的分类是多么的丰富和复杂,其根源来自于四个基本的类。这个四个类的关系如下:

字节流     字符流输入流  InputStream    Reader输出流 OutputStream    Writer

四、字节流和字符流的相互转换

1、从字节流到字符流:InputStreamReader、OutputStreamWriter类可以实现。

2、从字符流到字节流:可以从字符流中获取char[]数组,转换为String,然后调用String的API函数getBytes() 获取到byte[],然后就可以通过ByteArrayInputStream、ByteArrayOutputStream来实现到字节流的转换。

(0)

相关推荐

  • Windows Server 2003系统进程中NETWORK SERVICE相关知识详解

    在系统中打开进程管理的时候,可发现众多进程都是属于不同的用户,有用户登录帐户运行的非系统进程,还有以System运行的系统进程,其中有一个为NETWORK SERVICE的,很多用户不知道这是什么用户 ...

  • Ubuntu中Source Insight的使用详解

    相信很多朋友在Windows下都习惯用Source Insight来阅读分析源代码了,对于LINUX下面的工具,确实有比较高效的,配置起来起对比较麻烦,也比较繁琐,相信很多人肯定希望能在Linux下面 ...

  • Excel中COUNTIFS函数的运用详解

    COUNTIFS函数可以计算多个区域中满足给定条件的单元格的个数.下面通过一个实例介绍COUNTIFS函数的实际运用,对于不了解的朋友可以参考本文,希望能对大家有所帮助! 方法/步骤 1.COUNTI ...

  • EXCEL表格中HEX2OCT函数的用法详解

    Excel是一个常用办公工具,它本身功能很是强大,自带了很多已经预定义的函数,可以随时根据需要进行调用.而HEX2OCT函数是将十六进制数值转换成八进制数值的函数,那如何在EXCEL表格中使用该函数呢 ...

  • EditPlus中的正则表达式中英文使用详解(附常用实例)

    EditPlus中的正则表达式中英文详解(附常用实例) /t Tab character.tab符号 /n New line.新的一行(换行符) . Matches any character.任何字 ...

  • centos中tree插件的使用详解与注意事项

    tree插件比较消耗cpu和内存,所以使用时需要注意一下. tree的安装: yum -y install tree 或者是 sudo apt-get install tree 使用时直接输入tree ...

  • 新版Word中的图表布局功能详解(图文)

    新版Word已经放出有一段时间了,还有好多朋友不熟悉,今天三联网详解一二,希望能帮到您!在Word文档编辑过程中插入图片能够提升文档的品质,并且便于用户加深理解,而最新版本的Word则带来了更加强悍的 ...

  • 新版Word中的图表布局功能详解

    新版Word已经放出有一段时间了,还有好多朋友不熟悉,今天网详解一二,希望能帮到您!在Word文档编辑过程中插入图片能够提升文档的品质,并且便于用户加深理解,而最新版本的Word则带来了更加强悍的图片 ...

  • QQ飞车中A车的功能详解

    QQ飞车中的A车有维纳斯.冰刃.子弹等,共10种,下面为大家详解下它们的优缺点,以便帮助大家选择. 步骤/方法 01 维纳斯 据悉这个车是未改装A车最快的赛车 其实性能一般 现在用的人很少 冰刃 冰刃 ...