文件IO操作相关系统编程这里主要说两套IO操作接口,分别是:POSIX标准read|write接口,函数定义在#include<unistd.h>ISOC标准fread|fwrite接口,函数定义在#include<stdio.h>有书上说POSIX标准与ISOC标准的区别在于文件读写是否带缓冲区,我则不是很认同,因此POSI..
分类:
系统相关 时间:
2014-05-27 03:59:28
阅读次数:
481
网上很多IO资料,对新手来说,越看越晕。根据自己的理解,总结对比了一下OIO、NIO、AIO。
OIO:线程发起IO请求,不管内核是否准备好IO操作,从发起请求起,线程一直阻塞,直到操作完成。如下图:
NIO(reactor模型):线程发起IO请求,立即返回;内核在做好IO操作的准备之后,通过调用注册的回调函数通知线程做IO操作,线程开始阻塞,直到操作完成。如下图:
AIO(...
分类:
其他好文 时间:
2014-05-23 01:00:05
阅读次数:
470
文件IO操作相关系统编程
这里主要说两套IO操作接口,分别是:
POSIX标准
read|write接口,函数定义在#include
ISO C标准
fread|fwrite接口,函数定义在#include
有书上说POSIX标准与ISO C标准的区别在于文件读写是否带缓冲区,我则不是很认同,因此POSIX标准下的...
分类:
系统相关 时间:
2014-05-18 18:45:33
阅读次数:
536
在java.io包中得操作主要有字节流与字符流两大类,两个类都有输入输出操作。
在字节流中,输出数据主要使用OutputStream类,输入使用的InputStream类。
在字符流中,输出数据使用Writer,输入数据使用Reader。
在Java中IO操作有相应的步骤,以文件的操作为例。
(1)使用File类打开一个文件
(2)通过字节流或字符流的子类指定输出的位置。
(3)进行读...
分类:
编程语言 时间:
2014-05-18 18:33:04
阅读次数:
270
引入Java NIO的目的:
引入NIO的目的是为了提高速度(包括存储速度和网络IO速度),因为NIO中采用了结构更接近于操作系统执行IO操作的方式:通道和缓冲器;客户端通过缓冲器与通道交互以进行IO操作,用户通过调用FileInputStream、FileOutputStream、RandomA....
分类:
编程语言 时间:
2014-05-14 12:18:29
阅读次数:
423
近期不少java用户都在提sae读写本地文件的问题,在这里结合TmpFS和Storage服务说说java应用应该如何读写文件TmpFS是一个供应用临时读写的路径,但请求过后将被销毁。出于安全考虑,sae限制了应用对本地IO操作,但本地操作肯定是存在的,所以sae提供了TmpFS来应对。如果需要将文件...
分类:
编程语言 时间:
2014-05-13 09:47:43
阅读次数:
364
在上一篇博客中,一个简单的AIOweb处理例子,可以看到AIO异步处理,依赖操作系统完成IO操作的Proactor处理模型确实很强大,可以是实现高并发,高响应服务器的不错选择,但是在tomcat中的connector的处理模型还依旧是基于NIO的处理,当然,我认为这可能会在以后的版本进行改进,但另一方面,我更认为AIO的负载控制方面的处理可能是比较难的,因为AIO api并没有提供我们对分配线程组的处理,而只是提供一个线程组,交给操作系统去解决io处理上的问题,所以,这可能会给需要复杂处理的负载均衡带来一定...
分类:
Web程序 时间:
2014-05-11 22:07:20
阅读次数:
385
背景
我们以常见的登录的时候有CheckBox来显示是否保存帐号密码的形式来生动的讲解这个故事。最后是以txt文档保存,用到的是Java的IO操作。这个只是粗略的,大家不喜勿喷。保存文件
public static void savefile2card(Context context,String ...
分类:
移动开发 时间:
2014-05-10 00:14:22
阅读次数:
439
场景为,给到一个硬盘上文件或文件夹,(当然文件夹时,多线程的优势才能越发体现出来),得到该文件或文件夹的大小和计算该结果所需要的时间。
首先是单线程下的例子,这个可难不倒大家,代码如下:
01
public class TotalFileSizeSequential {
02
priv...
分类:
编程语言 时间:
2014-05-07 12:06:33
阅读次数:
613
接着上篇中没写完的(http://my.oschina.net/bluesroot/blog/223453),上篇中讲到很多,为完成对一个目录的扫描的频繁的IO操作,我们从单线程到多线程,从CountDownLatch到BlockingQueue,中间不免各种Callable和Future和ExecutorService等等,虽然纷繁,中间有些不免麻烦,但是最终仍紧紧贴着我们的需求和多线程操作这一...
分类:
编程语言 时间:
2014-05-07 11:24:35
阅读次数:
643