面向流与面向缓冲

Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。 Java NIO的缓冲导向方法略有不同。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动。这就增加了处理过程中的灵活性。但是,还需要检查是否该缓冲区中包含所有您需要处理的数据。而且,需确保当更多的数据读入缓冲区时,不要覆盖缓冲区里尚未处理的数据。

阻塞与非阻塞IO

Java IO的各种流是阻塞的。这意味着,当一个线程调用read() 或 write()时,该线程被阻塞,直到有一些数据被读取,或数据完全写入。该线程在此期间不能再干任何事情了。 Java NIO的非阻塞模式,使一个线程从某通道发送请求读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取。而不是保持线程阻塞,所以直至数据变的可以读取之前,该线程可以继续做其他的事情。 非阻塞写也是如此。一个线程请求写入一些数据到某通道,但不需要等待它完全写入,这个线程同时可以去做别的事情。 线程通常将非阻塞IO的空闲时间用于在其它通道上执行IO操作,所以一个单独的线程现在可以管理多个输入和输出通道(channel)。

java io 和nio 区别_java IO和NIO区别相关推荐

  1. java按照io流向基类_Java IO详解

    1 Java IO流的概念,分类 1.1 Java IO流的概念 java的IO是实现输入和输出的基础,可以方便的实现数据的输入和输出操作.在java中把不同的输入/输出源(键盘,文件,网络连接等)抽 ...

  2. java long和int 区别_java long int的区别

    java long int的区别 java中long和int都属于整型,为什么还要细分为long和int两种数据类型呢?这是因为它们代表的大小不一样.具体区别如下: 1.区别1 16位系统:long是 ...

  3. java nio nio2 区别_Java NIO2:NIO概述

    一.概述 从JDK1.4开始,Java提供了一系列改进的输入/输出处理的新特性,被统称为NIO(即New I/O).新增了许多用于处理输入输出的类,这些类都被放在java.nio包及子包下,并且对原j ...

  4. java io流拒绝访问_JAVA IO流 - 张宏良的个人空间 - OSCHINA - 中文开源技术交流社区...

    IO流 一.File类的使用 java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关 File能新建.删除.重命名文件和目录,但File不能访问文件内容本身.如果需要访问文件内容本身 ...

  5. java文件流读取异常_Java IO流的FileInputStream读取文件的问题,不同写法输出不一样...

    利用FileInputStream的read()方法读取文件时,读出的数据强制转换时用不同的写法,在控制台得出不同的显示. 出问题的写法: 正确输出的写法: 以下为两种输出,错误输出是输出一串数字,正 ...

  6. java io流不关闭_Java IO流关闭问题的深入研究

    前几天看了一篇文章(见参考文章),自己动手试了下,发现有些不一样结论,作博客记录下,本文主要研究两个问题: 包装流的close方法是否会自动关闭被包装的流? 关闭流方法是否有顺序? 包装流的close ...

  7. java io流过滤流_JAVA io流 文件流 字节流 字符流 过滤流 缓冲流

    一.概念 1.1.按流向分类: 输入流: 程序可以从中读取数据的流. 输出流: 程序能向其中写入数据的流. 1.2.按数据传输单位分类: 字节流:以字节(8位二进制)为单位进行处理.主要用于读写诸如图 ...

  8. java文件流写入文件_JAVA IO流编程 实现文件的写入、写出以及拷贝

    一.流的概念 流:数据在数据源(文件)和程序(内存)之间经历的路径. 输入流:数据从数据源(文件)到程序(内存)的路径. 输出流:数据从程序(内存)到数据源(文件)的路径. 以内存为参照,如果数据向内 ...

  9. java流程图表示输入 输出_Java IO基础总结

    Java IO基础总结 Java中使用IO(输入输出)来读取和写入,根据数据走向可分为输入流和输出流,用户可以从输入流中中读取信息,但不能写它,相反,对输出流,只能往输入流写,而不能读它(输入流表示从 ...

  10. java.io包对象读写_java.io 包中的____________和____________类主要用于对对象(Object)的读写_学小易找答案...

    [多选题]连铸钢水成分控制的要求有( ). [单选题]起动机用直流电动机将电能转化为 [单选题]下列关于我国少数民族传统禁忌的说法中,错误的是( ). [多选题]下列选项中 , 属于表单控件的是 ( ...

最新文章

  1. Python字符串基本操作
  2. 如何调试 Android 上 HTTP(S) 流量
  3. ppt讲解html,HTML讲解解读.ppt
  4. 这些明星日入斗金,为什么还要贷款?
  5. php页面防刷,PHP防止刷新重复提交页面的示例代码
  6. [UOJ22]外星人
  7. Linux之动态网页---搭建论坛
  8. Windows下编译redis
  9. 【ACM ICPC 2011–2012, Northeastern European Regional Contest】Interactive Permutation Guessing【交互题】
  10. E-Prime 软件中常用的 inline 语句
  11. Java-简易加法计算器代码优化
  12. 3dmax2009下载3dmax2009安装教程
  13. 计算机丢失cxcore100.dll,cxcore100.dll
  14. RuntimeError: CUDA error: device-side assert triggered的解决
  15. 深度解析国内O2O模式
  16. 澎湃微PT32F003/F005
  17. 太火爆了!这一款小游戏火到把服务器搞瘫痪,合成大西瓜
  18. java 蓝牙打印_Android - 将收据打印到蓝牙打印机
  19. 小新700linux网卡驱动,小新Air14网卡驱动2024.0.2.101/12.0.0.725版下载,适用于Win10-64-驱动精灵...
  20. 【深度学习】Keras自建神经网络模型实现133种狗的种类识别(记录笔记)

热门文章

  1. 黑马SpringBoot笔记
  2. 一起聊聊操作简单又高效的Excel数据透视表
  3. 网易云课堂 oracle,网易云课堂DBA学习笔记 (一) 数据库基础
  4. svn的图标突然不显示了
  5. Pyserial文件传输
  6. linux搭建天地伟业easy7,天地伟业easy7客户端
  7. PlaySound的同步播放与异步播放
  8. 常用的vue组件库总结
  9. tensorflow sigmoid 如何计算训练数据的正确率_逻辑回归算法!数据产品经理必看...
  10. angular 居中_垂直居中的N种方法