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. 设计模式之美:Structural Patterns(结构型模式)

    结构型模式涉及到如何组合类和对象以获得更大的结构. 结构型类模式采用继承机制来组合接口实现. 结构型对象模式不是对接口和实现进行组合,而是描述了如何对一些对象进行组合,从而实现新功能的一些方法. 因为 ...

  2. nginx.conf文件说明

    #Nginx所有用户和组,window下不指定 #user nobody; #工作的子进程数量(通常等于CPU数量或者2倍于CPU) worker_processes 1; #错误日志存放路径 #er ...

  3. win32汇编hello world

    下载:http://www.masm32.com/ 安装masm32 建一个Var.bat文件并运行 @echo offset include=E:\masm32\includeset lib=E:\ ...

  4. IIS7.5 发布程序后cookie丢失问题

    给客户部署网站程序时,发现网站的用户登录不了系统,就是跳转不到另外一个页面,一直保留在当前的页面.在本地的VS里面调试的时候是正常的,算在本地的IIS上发布了一下,测试也是这个问题. -------- ...

  5. centos 防火墙设置

    1.安装iptables防火墙 怎么知道系统是否安装了iptables?执行iptables -V,如果显示如: iptables v1.3.5 说明已经安装了iptables. 如果没有安装ipta ...

  6. OpenBTS的安装(转)

    OpenBTS source code可以在这里下载:http://sourceforge.net/projects/openbts/ OpenBTS入门的各种问题可以在这里找到答案:http://g ...

  7. windows地址转发

    netsh interface portproxy add v4tov4 listenport=8080 connectaddress=192.168.8.108 connectport=8080 把 ...

  8. 【转】我应该直接学Swift还是Objective-C?

    (本文作者Amit Bijlani,由CocoaChina翻译) 当我们发布了Swift语言学习课程之后,收到了很多邮件和私信来问自己是否还需要学习C或者Objective-C.此外,人们似乎还在迷惑 ...

  9. ZooKeeper典型应用场景一览

    原文地址:http://jm-blog.aliapp.com/?p=1232 ZooKeeper典型应用场景一览 数据发布与订阅(配置中心) 发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据 ...

  10. Win7快捷方式图标不显示解决办法

    问题:WIN7的系统,桌面.开始菜单以及任务栏的快捷方式图标显示不正常,看不到程序默认图标,快捷方式图标不显示. 解决方法:删除程序图标缓存即可.   将下面的内容复制到记事本保存为“图标缓存清理.b ...