带缓冲IO和不带缓冲IO

不带缓冲IO是指read(),write()等函数

标准(带缓冲)IO是指fread(),fwrite()等函数

实际上缓冲有两种,是用户空间上的缓冲(流缓冲区)和内核缓冲区。无论是不带缓冲IO还是标准IO都要通过系统调用将数据输入到内核缓冲区。

所谓的带缓冲是指带流缓冲区。

可以参考文章http://blog.sina.cn/dpool/blog/s/blog_6592a07a0101gar7.html

时间: 09-28

带缓冲IO和不带缓冲IO的相关文章

Java IO之处理流(缓冲流、转换流)

一.处理流: 增强功能,提供性能,在节点流之上. 二.节点流与处理流的关系 节点流(字节流.字符流)处于IO操作的第一线,所有操作必须通过它们进行: 处理流可以对其他流进行处理(提高效率或操作灵活性). 三.缓冲流 1.字节缓冲流 BufferedInputStream BufferedOutputStream package IOBuffer; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; im

Java IO 过滤流 字节缓冲流 BufferedInput/OutputStream

Java IO 过滤流 字节缓冲流 BufferedInput/OutputStream @author ixenos 概念 BufferedInput/OutputStream是实现缓存的过滤流,他们分别是FilterInput/OutputStream的子类. BufferedInputStream工作流程 stream-->buf--read buf-->I 1.当一个BufferedInputStream被创建时,一个内部的缓冲区 byte[] buf = new byte[size]

带缓冲的IO和不带缓冲的IO

文件描述符: 文件描述符是一个小的非负整数,是内核用来标识特定进程正在访问的文件 标准输入/输出/出错: shell为每个程序打开了三个文件描述符,STDIN_FILEON,STDOUT_FILEON,STDERR_FILEON,默认这三个文件描述符都链向终端 不带缓冲的IO: 函数open read write lseek close提供了不用缓冲的IO.这些函数都使用文件描述符 size_t read(int fd,void *buf,size_t count) 从fd标识的文件中一次读取c

JAVASE02-Unit07: 基本IO操作 、 文本数据IO操作

基本IO操作 . 文本数据IO操作 java标准IO(input/output)操作 package day07; import java.io.FileOutputStream; import java.io.IOException; /** * java标准IO(input/output)操作 * 输入流InputStrean:用于从数据源读取数据到程序中 * 输出流OutputStream:用于将数据发送至目标 * * 流划分为:节点流,处理流 * 节点流:又叫做低级流,特点:数据源明确,

Java基础知识强化之IO流笔记44:IO流练习之 复制图片的 4 种方式案例

1. 复制图片的 4 种方式案例: 分析: 复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流. 通过该原理,我们知道我们应该采用字节流. 而字节流有4种方式,所以做这个题目我们有4种方式.推荐掌握第4种. 数据源: c:\\a.jpg -- FileInputStream -- BufferedInputStream 目的地: d:\\b.jpg -- FileOutputStream -- BufferedOutputStream 2. 4 种方式代码示例: 1 pack

System.IO.Pipelines: .NET上高性能IO

System.IO.Pipelines是一个新的库,旨在简化在.NET中执行高性能IO的过程.它是一个依赖.NET Standard的库,适用于所有.NET实现. Pipelines诞生于.NET Core团队,为使Kestrel成为业界最快的Web服务器之一.最初从作为Kestrel内部的实现细节发展成为可重用的API,它在.Net Core 2.1中作为可用于所有.NET开发人员的最高级BCL API(System.IO.Pipelines)提供. 它解决了什么问题? 为了正确解析Strea

Perl IO:操作系统层次的IO

sysopen() open()和sysopen()都打开文件句柄,open()是比较高层次的打开文件句柄,sysopen()相对要底层一点.但它们打开的文件句柄并没有区别,只不过sysopen()有一些自己的特性:可以使用几个open()没有的flag,可以指定文件被创建时的权限等. 一定要注意的是,io buffer和open().sysopen()无关,而是和读.写的方式有关,例如read().getc()以及行读取都使用io buffer,而sysread.syswrite则直接绕过io

Java基础知识强化之IO流笔记50:IO流练习之 复制多级文件夹的案例

1. 复制多级文件夹的案例 需求:复制多级文件夹   数据源:E:\JavaSE\day21\code\demos 目的地:E:\   分析:         A:封装数据源File         B:封装目的地File         C:判断该File是文件还是文件夹        a:是文件夹 就在目的地目录下创建该文件夹 获取该File对象下的所有文件或者文件夹File对象 遍历得到每一个File对象 回到C                     b:是文件             

Java基础知识强化之IO流笔记48:IO流练习之 复制单级文件夹案例

1. 复制单级文件夹     数据源:e:\\demo     目的地:e:\\test 分析: A:封装目录 B:获取该目录下的所有文本的File数组 C:遍历该File数组,得到每一个File对象 D:把该File进行复制 2.  代码示例: 1 package cn.itcast_03; 2 3 import java.io.BufferedInputStream; 4 import java.io.BufferedOutputStream; 5 import java.io.File;