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

JAVA I/O

一、什么是I/O、流

  I/O就是数据的输入输出

  流就是一个数据的序列

 

二、I/O的基本类库结构

  1、基于字节操作的I/O接口:InputStream OutputStream

  2、基于字符操作的I/0接口:Writer Reader

  3、基于文件操作的I/0接口:File

  4、基于网络操作的I/O接口:Socket

 

三、磁盘I/O工作机制

  1、读写文件:内存缓存机制:读取文件时,先查看内存缓存中是否存在该数据,存在则直接加载到用户空间

  2、标准访问文件方式

    (1)读取时先检查内核缓存空间是否存在,有则返回,无则读取磁盘加载到内核空间

    (2)写的时候从用户地址空间复制到内核地址空间缓存中,写操作完成,写到磁盘由系统负责,除非显式调用 sync()

  3、直接I/O方式

    (1)应用程序直接访问磁盘数据,减少一次内核到用户空间数据的复制

    (2)这种加载方式较慢,一般与异步I/O配合使用

  4、内存映射方式

    (1)内存映射是指将硬盘上的文件位置与进程中的逻辑地址空间中的一块大小相同的区域对应,访问文件转换为访问文件

    (2)适用于大量数据量的传输

 

四、访问磁盘文件  

  1、JAVA中的File不是一个真实存在的文件对象,返回的是一个FileDescriptor对象,操作时生成StreamDecoder对象来指定编码

 

五、JAVA序列化技术

  1、序列化:将一个对象转化为一串二进制表示的字节数组,通过保存或转移字节数据来达到持久化的目的

  2、serialVesionUID:

    (1)保证序列化版本的兼容性【在序列化后又修改对象,如果没有指定UID,反序列化出错】

    (2)默认serialVersionUID:根据类、属性、方法计算出一个独一无二的变量值

  3、适用:

    (1)Web中保存Session对象,Tomcat在服务器关闭时会把Session存储为一个Session.ser对象,称为Session的钝化

    (2)网络对象的传输

 

六、网络I/0的工作机制

  BIO/NIO/AIO

        

  

I/O流流:通过不同输入设备(键盘、内存、显示器、网络等)之间的数据传输抽象表示为“流”I/O流分类:字节流和字符流:根据流操作的数据单位不同,可以分为字节流和字符流。字节流以字节为单位进行数据的读
JavaI/O总结JavaI/O操作主要是指使用Java进行输入,输出操作Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。数据流是一串连续不断的数据的
1流流是一组有序的数据序列,I/O流提供了一条通道程序,我们使用这个通道可以把源中的字节输送到目的地。我们经常使用I/O流与磁盘的文件打交道,但是程序的源和目的地可以使内存,键盘,鼠标等等。输入输出硬
序列化:将数据结构或对象转换成二进制字节流的过程反序列化:将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的过程对于Java这种面向对象编程语言来说,我们序列化的都是对象(Object)也就
一、什么是I/O、流I/O就是数据的输入输出流就是一个数据的序列二、I/O的基本类库结构1、基于字节操作的I/O接口:InputStreamOutputStream2、基于字符操作的I/0接口:Wr
关概念同步和异步描述的是用户线程与内核的交互方式:同步是指用户线程发起I/O请求后需要等待或者轮询内核I/O操作完成后才能继续执行;异步是指用户线程发起I/O请求后仍继续执行,当内核I/O操作完成后
对于JavaI/O来说,I意味着Input(输入),O意味着Output(输出)。读书写作并非易事,而创建一个好的I/O系统更是一项艰难的任务。古人云:“读书破万卷,下笔如有神”。也就是说,只有大量的
一、概述Java的IO支持通过javaio包下的类和接口来完成,在javaio包下主要有包括输入、输出两种IO流,每种输入输出流又可分为字节流和字符流两大类。从JDK14以后,Java在javanio
1、同步和异步同步:如果有多个任务或者事件要发生,这些任务或者事件必须逐个地进行,一个事件或者任务的执行会导致整个流程的暂时等待,这些事件没有办法并发地执行,最简单的例子就是顺序的执行两个方法,当第一
文章目录本章学习要点Java流是什么?输入/输出流又是什么?什么是输入/输出流输入流输出流Java系统流例1Java字符编码介绍JavaFile类(文件操作类)详解获取文件属性例1创建和删除文件例2创