随笔分类 -  java输入输出IO/NIO

摘要:一、简介 前面的文章说了缓冲区,说了通道,本文就来说说 NIO 中另一个重要的实现,即选择器 Selector。在更早的文章中,我简述了几种 IO 模型。如果大家看过之前的文章,并动手写过代码的话。再看 Java 的选择器大概就会知道它是什么了,以及怎么用了。选择器是 Java 多路复用模型的一个实 阅读全文
posted @ 2019-11-27 20:24 王大军 阅读(377) 评论(0) 推荐(0)
摘要:一、简介 前面一篇文章讲了文件通道,本文继续来说说另一种类型的通道 – 套接字通道。在展开说明之前,咱们先来聊聊套接字的由来。套接字即 socket,最早由伯克利大学的研究人员开发,所以经常被称为Berkeley sockets。UNIX 4.2BSD 内核版本中加入了 socket 的实现,此后, 阅读全文
posted @ 2019-11-27 17:06 王大军 阅读(591) 评论(0) 推荐(0)
摘要:一、简介 通道是 Java NIO 的核心内容之一,在使用上,通道需和缓存类(ByteBuffer)配合完成读写等操作。与传统的流式 IO 中数据单向流动不同,通道中的数据可以双向流动。通道既可以读,也可以写。 Java NIO 出现在 JDK 1.4 中,由于 NIO 效率高于传统的 IO,所以 阅读全文
posted @ 2019-11-27 16:14 王大军 阅读(287) 评论(0) 推荐(0)
摘要:一、简介 java NIO相关类在jdk1.4被引入,用于提高I/O的效率。java NIO包含很多东西,但核心的东西不外乎Buffer、channel和selector。本文先来看Buffer的实现。 二、继承体系 Buffer 的继承类比较多,用于存储各种类型的数据。包括 ByteBuffer、 阅读全文
posted @ 2019-11-27 15:07 王大军 阅读(520) 评论(0) 推荐(0)
摘要:一、简介 本文向大家介绍五种I/O模型。分别是阻塞I/O、非阻塞I/O、I/O复用、信号驱动式I/O、异步I/O等。内容参考《UNIX网络编程》,大家想进深入学习网络编程,建议去读读这本书。 二、模型介绍 (一)、阻塞I/O模型 阻塞I/O是最简单的I/O,一般表现为进程或线程等待某个条件,如果条件 阅读全文
posted @ 2019-11-27 10:40 王大军 阅读(301) 评论(0) 推荐(0)
摘要:一、流 1. 流的含义 在程序设计中,流是对于数据流动传输的一种抽象描述任何有能力产出数据的数据源,或者有能力接受数据的接收端对象都是一个流。 2. 流的源和目的 数据可能从本地文件读取,或者写入, 也可能发送到网络上,这就是源和目的。 1.文件 最基本的一个数据源就是我们前文提到过的文件,文件不仅 阅读全文
posted @ 2019-11-09 21:34 王大军 阅读(267) 评论(0) 推荐(0)
摘要:一、简介 设计Reader和Writer继承层次结构主要是为了国际化。InputStream和OutStream流继承层次结构仅支持8位字节流,并不能很好的处理16位的Unicode字符。由于Unicode用于字符国际化(java本身的char也是16位的Unicode),所以添加了Reader和W 阅读全文
posted @ 2019-11-09 15:20 王大军 阅读(360) 评论(0) 推荐(0)
摘要:一、简介 InputStream 和 OutputStream 对于字节流的输入和输出是作为协议的存在 所以有必要了解下这两个类提供出来的基本约定,这两个类是抽象类,而且基本上没什么实现,都是依赖于子类具体的去实现,但是他是对于其子类 协议纲领一般的存在。 二、InputStream 所有字节输入流 阅读全文
posted @ 2019-11-09 14:17 王大军 阅读(835) 评论(0) 推荐(0)
摘要:一、简介 文件和目录路径名的抽象表示。 用户界面和操作系统使用依赖于系统的路径名字符串命名文件和目录。 这个类提供了一个抽象的,独立于系统的层次化路径名的视图。 二、代码 (一)、属性详情 //平台的本地文件系统的FileSystem对象 private static final FileSyste 阅读全文
posted @ 2019-11-08 17:17 王大军 阅读(394) 评论(0) 推荐(0)