专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 编程基础学习,用Java io流读取文件

编程基础学习,用Java io流读取文件

更新时间:2020-05-07 14:50:51 来源:动力节点 浏览2192次

   以BIO形式的文件读取和复制:

编程基础学习,用Java io流读取文件

    NIO读取过程:

编程基础学习,用Java io流读取文件

    NIO形式的读取和复制

编程基础学习,用Java io流读取文件

编程基础学习,用Java io流读取文件

    阻塞IO和非阻塞IO这两个概念是程序级别的。主要描述的是程序请求操作系统IO操作后,如果IO资源没有准备好,那么程序该如何处理的问题:前者等待;后者继续执行(并且使用线程一直轮询,直到有IO资源准备好了)。

    同步IO和异步 IO,这两个概念是操作系统级别的。主要描述的是操作系统在收到程序请求IO操作后,如果IO资源没有准备好,该如何响应程序的问题:前者不响应,直到IO资源准备好以后;后者返回一个标记(好让程序和自己知道以后的数据往哪里通知),当IO资源准备好以后,再用事件机制返回给程序。

    同步阻塞IO(JAVABIO):

    服务器实现模式为一个连接一个线程,每当客户端有连接请求时服务器端就需要启动一个线程进行处理。而且服务器需要一直处于等待状态,一直在 accept();。如果这个连接不做任何事会造成不必要的开销。

    同步非阻塞IO(JavaNIO):

    服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。用户进程也需要时不时的询问IO操作是否就绪,这就要求用户进程不停的去询问。

    异步阻塞IO(JavaNIO):

    此种方式下是指应用发起一个IO操作以后,不等待内核IO操作的完成,等内核完成IO操作以后会通知应用程序,这其实就是同步和异步最关键的区别,同步必须等待或者主动的去询问IO是否完成。(比如你买了一份快递,你不需要一天二十四小时去关注快递的状态,而是当快递到了或丢了等特殊情况下会通知你。)

    阻塞是因为此时是通过select系统调用来完成的,而select函数本身的实现方式是阻塞的,而采用select函数有个好处就是它可以同时监听多个文件句柄从而提高系统的并发性!

    还有更强的异步非阻塞(AIO)。

    以上就是动力节点java培训机构的小编针对“编程基础学习,用Java io流读取文件”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>