搜索
简帛阁>技术文章>Java I/O流

Java I/O流

1.流

  流是一组有序的数据序列,I/O流提供了一条通道程序,我们使用这个通道可以把源中的字节输送到目的地。

我们经常使用I/O流与磁盘的文件打交道,但是程序的源和目的地可以使内存,键盘,鼠标等等。

 输入

 

输出

硬盘:File

网络:Socket

2.位、字节、字符的区别

位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。

字节(byte):是计算机中数据处理的基本单位,习惯上用大写  B  来表示,1B(byte,字节)= 8bit(位)。

字符:是指计算机中使用的字母、数字、字和符号。

不同编码中,字符和字节的对应关系:

ASCIIS码: 1个英文字母(不分大小写)= 1个字节的空间

                    1个中文汉字 = 2个字节的空间

                    1个ASCII码 = 一个字节

UTF-8编码:1个英文字符 = 1个字节

                     英文标点  = 1个字节

                     1个中文(含繁体) = 3个字节

                     中文标点 = 3个字节

Unicode编码:1个英文字符 = 2个字节

                     英文标点  = 2个字节

                     1个中文(含繁体) = 2个字节

                     中文标点 = 2个字节

3.字节流和字符流区别

  按照操作的数据单元不同。  

  字符流在操作的时候会使用到缓存,而字节流是直接操作文件本身。 

4.IO模型:BIO、NIO、AIO

  4.1.同步和异步,阻塞和非阻塞,并发和并行

  同步异步区别: 需不需要等待返回结果。同步实时性比较好,异步的并发性能比较好。

  同步:发出请求后,需要等待返回结果,才能进行其他操作。例:打电话

  异步:发出请求后,不需要等待返回结果,而是去做其他事情,等返回结果后会通知(轮询、通知、回调)调用者,再进行相应处理。例:发短信

  阻塞和非阻塞区别:会不会阻塞当前线程。相对CPU消耗,CPU需不需等待慢操作。

  阻塞:当前线程会被挂起或等待,得到结果之后才会被唤醒继续执行。

  非阻塞:在调用结果返回之前,不会阻塞当前线程。

  并发和并行:并发是一个CUP一段时间内处理多个线程,并行是多个CUP同时处理多个线程。区别:是否同时。

 4.2.BIO、NIO、AIO的区别

  BIO:同步阻塞

  NIO:同步非阻塞、多路复用

  AIO:异步非阻塞,基于事件和回调机制实现

 

I/O流流:通过不同输入设备(键盘、内存、显示器、网络等)之间的数据传输抽象表示为“I/O分类:字节和字符:根据操作的数据单位不同,可以分为字节和字符。字节以字节为单位进行数据的读
1流流是一组有序的数据序列,I/O提供了一条通道程序,我们使用这个通道可以把源中的字节输送到目的地。我们经常使用I/O与磁盘的文件打交道,但是程序的源和目的地可以使内存,键盘,鼠标等等。输入输出
JavaI/O总结JavaI/O操作主要是指使用Java进行输入,输出操作Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。数据流是一串连续不断的数据的
序列化:将数据结构或对象转换成二进制字节的过程反序列化:将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的过程对于Java这种面向对象编程语言来说,我们序列化的都是对象(Object)也
一、什么是I/OI/O就是数据的输入输出就是一个数据的序列二、I/O的基本类库结构1、基于字节操作的I/O接口:InputStreamOutputStream2、基于字符操作的I/0接口:Wr
文章目录本章学习要点Java是什么?输入/输出又是什么?什么是输入/输出输入输出Java系统例1Java字符编码介绍JavaFile类(文件操作类)详解获取文件属性例1创建和删除文件例2创
一、文件的编码开发时一定要注意项目默认的编码!!!!!!!!文件操作的时候一定要记得关闭!!!!!!!!ASCII:美国标准信息交换码,用一个字节的7位可以表示一个字符ISO88591:拉丁码表,西欧
JavaI/O实现文件复制1、文件复制原理2、文件遍历算法(1)算法分析(2)算法源码3、文件复制算法(1)算法分析(2)算法源码1、文件复制原理文件的类型有很多,从层次上分,有目录(即文件夹)与普
”概念源于UNIX中的管道(pipe)的概念。在UNIX中,管道是一条不间断的字节,用来实现程序或进程间的通信,或读写外围设备、外部文件等,它屏蔽了实际的I/O设备中处理数据的细节。一个,必有
前言尽管可以通过不同的方式组合IO流类,但我们可能也就只用到其中的几种组合。下面的例子可以作为典型的IO用法的基本参考。在这些示例中,异常处理都被简化为将异常传递给控制台,但是这只有在小型示例和工具中