http://www.iteye.com/magazines/132-Java-NIO

http://liyuanning.blog.163.com/blog/static/457322862010102321121/

http://kingkongzhao.blog.51cto.com/6319491/1672929/

http://www.ibm.com/developerworks/cn/java/j-lo-javaio/

http://blog.csdn.net/hansnowqiang/article/details/50130437

http://blog.csdn.net/yuebinghaoyuan/article/details/7388059

http://www.cnblogs.com/shitouer/archive/2012/12/19/2823641.html

http://blog.csdn.net/smartbetter/article/details/51323904

http://www.cnblogs.com/hqr9313/archive/2012/04/23/2467294.html

http://blog.csdn.net/hijiankang/article/details/51027565

IO总的来说分为两种,一种是流,分为字符流、字节流、位流等等,另一种是记录、数据块等等;两者的区别是,流的数据中没有同步信息、管理信息,只是单纯的数据,而记录、数据块则存在同步和管理信息。

C++的IO流属于字符流,数据在流中的内部表示是字符,不是字节或位。IO流是文本IO,不是二进制IO,但它常常因为具有文件二进制模式而被人误解为既是文本IO也是二进制IO,这是错误的,binary模式仅仅暂时性抑制了IO流中的格式化层及与操作系统相关的一些转换(例如\n),并没有改变IO流的文本IO性质,即在binary模式中的流仍然是字符流(只不过没有进行自动转换),而不是字节流。

C++的IO流分为两层:格式化层和传输层。

格式化层进行输出中的格式化及输入中的解析,例如将浮点数的内部二进制表示转换为打印字符或者从缓冲中抽取字符转换为整数的二进制内部表示等等。

传输层包括缓冲区、编码转换和传递层,缓冲区不用说,就是内部字符的缓冲啦,编码转换用于字符的内部表示和外部表示之间的转换,IO流的编码转换只支持宽字符和多字节字符集之间的转换,传递层用于与外部设备之间的连接。

C++的IO流对象默认情况下是与C的stdin、stdout、stderr连接在一起的,视具体实现不同,IO流可能使用C的缓冲区而自身没有缓冲区,也可能两者共享相同的缓冲区,这是IO流比C的输入输出函数慢的一个原因,但可以将两者解开,通过函数ios_base::sync_with_stdio( false )进行,如果参数为true,则重新连接。在某些环境下,例如g++,两者连接解开后,IO流的效率是C的输入输出函数的3倍。

java 流的更多相关文章

  1. 登堂入室——java流

    ——文章出自PeterYe,不得私自转载 我所知道的 java.io里面的[流],就仿佛太平洋里面的水一样,浩浩荡荡,横无际涯... -----2016/7/16--------公寓处记录------ ...

  2. Java流

    流是一组有顺序的,有起点和终点的字节集合,是对传输数据的总称或抽象.即数据在两设备间的传输称为流,流的本质是传输数据,依据传输数据特性将流抽象为各种类,方便更直观的进行数据操作. 流的分类: 数据类型 ...

  3. Java笔记:Java 流(Stream)、文件(File)和IO

    更新时间:2018-1-7 12:27:21 更多请查看在线文集:http://android.52fhy.com/java/index.html java.io 包几乎包含了所有操作输入.输出需要的 ...

  4. java 流输出的一些问题

    一.java流的控制首先要先准备一个文件,例如:File f = new File(d:/lol.txt); 二.可以使用如下指令创建流,用于不同的用途 1.FileInputStream,FileO ...

  5. JAVA流式布局管理器--JAVA基础

    JAVA流式布局管理器的使用: FlowLayoutDeme.java: import java.awt.*;import javax.swing.*;public class FlowLayoutD ...

  6. Java - 17 Java 流(Stream)、文件(File)和IO

    Java 流(Stream).文件(File)和IO Java.io包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io包中的流支持很多种格式,比如:基本类型. ...

  7. Java总结:Java 流(Stream)、文件(File)和IO

    更新时间:2018-1-7 12:27:21 更多请查看在线文集:http://android.52fhy.com/java/index.html java.io 包几乎包含了所有操作输入.输出需要的 ...

  8. java 流 文件 IO

    Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类 ...

  9. 使用Socket&反射&Java流操作进行方法的远程调用(模拟RPC远程调用)

    写在前面 阅读本文首先得具备基本的Socket.反射.Java流操作的基本API使用知识:否则本文你可能看不懂... 服务端的端口监听 进行远程调用,那就必须得有客户端和服务端.服务端负责提供服务,客 ...

  10. 深入理解Java流机制(一)

    一.前言 C语言本身没有输入输出语句,而是调用"stdio.h"库中的输入输出函数来实现.同样,C++语言本身也没有输入输出,不过有别于C语言,C++有一个面向对象的I/O流类库& ...

随机推荐

  1. .NET跨平台:在Mac上跟着错误信息一步一步手写ASP.NET 5程序

    今天坐高铁时尝试了一种学习ASP.NET 5的笨方法,从空文件夹开始,根据运行dnx . kestrel命令的错误信息,一步一步写代码,直至将一个最简单的ASP.NET程序运行起来. 尝试的具体步骤如 ...

  2. 配置Linux自动挂载

    使用mount命令来挂载硬件,在Linux重启后这些挂载信息会丢失,因此对应磁盘这类硬件,需要配置自动挂载来保证系统重启时进行自动挂载. 自动挂载信息保存在文件/etc/fstab文件中 查看该文件的 ...

  3. 移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题

    移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题 开发H5 webapp时经常需要使用本地存储,如localStorage和sessionStor ...

  4. [C++] 行程编码C++代码

    #include<iostream> #include<string.h> #include<string> #include<cstring> #in ...

  5. Linux:目录&文件基本操作

    - 表示上一次所在目录,- 通常表示当前用户的"home"目录.使用 pwd 命令可以获取当前所在路径(绝对路径). 新建文件:touch test创建目录:mkdir -p fa ...

  6. 西安.NET俱乐部群 推广代码

      CSS: .gallery-item { display:inline-block; margin: 15px; }   个人签名: <div class="gallery&quo ...

  7. C#下取得Exif中照片拍摄日期

    /// <summary> /// 获取Exif中的照片拍摄日期 /// </summary> /// <param name="fileName"& ...

  8. 巧用Windows 7计划任务设置定时提醒

    Windows 7系统有个“计划任务”功能,一般人都很少使用.其实,“计划任务”是系统自带的一个很实用的功能,比如说,这个功能可以设置定时提醒,这样在使用电脑时就不会因为太过投入而导致错过重要的事务. ...

  9. 都昌 DCWriter电子病历编辑器演示文档截屏

  10. RFID 读写器 Reader Writer Cloner

    RFID读写器的工作原理 RFID的数据采集以读写器为主导,RFID读写器是一种通过无线通信,实现对标签识别和内存数据的读出和写入操作的装置. 读写器又称为阅读器或读头(Reader).查询器(Int ...