io系统
一、浅谈io系统
io系统的结构化思想是:输入-转换流-装饰器-输出。
对于字节流来说,常见的结构类为:
package com.handchina.yunmart.middleware.service; import org.elasticsearch.common.inject.Inject; import org.junit.Test; import java.io.*; /** * Created by yq on 2016/11/18. */ public class IOTestServiceTest { @Inject private IOTestService ioTestService; @Test public void testFile() { FileReader br = null; FileWriter bw = null; try { String in = "file/fileDemoIn.txt"; String out = "file/fileDemoOut.txt"; br = new FileReader(in);int s; Long start1 = System.currentTimeMillis(); bw = new FileWriter(out); while ((s = br.read()) != -1) { bw.write(s); } System.out.println("===========================复制时间:" + (System.currentTimeMillis() - start1) + "毫秒"); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } if (bw != null) { try { bw.close(); } catch (IOException e) { e.printStackTrace(); } } } } @Test public void testFileDemo() { BufferedReader br = null; BufferedWriter bw = null; try { String in = "file/fileDemoIn.txt"; String out = "file/fileDemoOut.txt"; br = new BufferedReader(new FileReader(in)); StringBuilder sb = new StringBuilder(); String s = null; Long start1 = System.currentTimeMillis(); while ((s = br.readLine()) != null) { sb.append(s); sb.append("\r\n"); } System.out.println("===========================读取时间:" + (System.currentTimeMillis() - start1) + "毫秒"); bw = new BufferedWriter(new FileWriter(out)); Long start2 = System.currentTimeMillis(); bw.write(sb.toString()); bw.flush(); System.out.println("===========================写入时间:" + (System.currentTimeMillis() - start2) + "毫秒"); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } if (bw != null) { try { bw.close(); } catch (IOException e) { e.printStackTrace(); } } } } @Test public void testByte() { FileInputStream bi = null; FileOutputStream bo = null; try { String in = "file/fileStreamIn.avi"; String out = "file/fileStreamOut.avi"; bi = new FileInputStream(in); bo = new FileOutputStream(out); byte[] buf = new byte[1024]; Long start1 = System.currentTimeMillis(); int temp = 0; while ((temp = bi.read(buf)) != -1) { bo.write(buf, 0, temp); } System.out.println("===========================复制时间:" + (System.currentTimeMillis() - start1) + "毫秒"); } catch (IOException e) { e.printStackTrace(); } finally { if (bi != null) { try { bi.close(); } catch (IOException e) { e.printStackTrace(); } } if (bo != null) { try { bo.close(); } catch (IOException e) { e.printStackTrace(); } } } } @Test public void testByteDemo() { BufferedInputStream bi = null; BufferedOutputStream bo = null; try { String in = "file/fileStreamIn.avi"; String out = "file/fileStreamOut.avi"; bi = new BufferedInputStream(new FileInputStream(in)); bo = new BufferedOutputStream(new FileOutputStream(out)); byte[] buf = new byte[1024]; Long start1 = System.currentTimeMillis(); int temp = 0; while ((temp = bi.read(buf)) != -1) { bo.write(buf, 0, temp); } System.out.println("===========================复制时间:" + (System.currentTimeMillis() - start1) + "毫秒"); } catch (IOException e) { e.printStackTrace(); } finally { if (bi != null) { try { bi.close(); } catch (IOException e) { e.printStackTrace(); } } if (bo != null) { try { bo.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
io系统的更多相关文章
- 从零开始山寨Caffe·拾贰:IO系统(四)
消费者 回忆:生产者提供产品的接口 在第捌章,IO系统(二)中,生产者DataReader提供了外部消费接口: class DataReader { public: ......... Blockin ...
- 从零开始山寨Caffe·陆:IO系统(一)
你说你学过操作系统这门课?写个无Bug的生产者和消费者模型试试! ——你真的学好了操作系统这门课嘛? 在第壹章,展示过这样图: 其中,左半部分构成了新版Caffe最恼人.最庞大的IO系统. 也是历来最 ...
- java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET
java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET 亲,“社区之星”已经一周岁了! 社区福利快来领取免费参加MDCC大会机会哦 Tag功能介绍—我们 ...
- 彻底明白Java的IO系统
java学习:彻底明白Java的IO系统 文章来源:互联网 一. Input和Output1. stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源.在Java的IO中,所有 ...
- 什么是PROFINET IO系统的实时性
实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行. PROFINET IO系统的实时性就是指当有一个外部事件发生时,从输入信号到传输.到控制 ...
- Java的IO系统
Java IO系统 "对语言设计人员来说,创建好的输入/输出系统是一项特别困难的任务." 由于存在大量不同的设计方案,所以该任务的困难性是很容易证明的.其中最大的 ...
- 【Java基础系列】Java IO系统
前言 创建好的输入/输出系统不仅要考虑三种不同种类的IO系统(文件,控制台,网络连接)还需要通过大量不同的方式与他们通信(顺序,随机访问,二进制,字符,按行,按字等等). 一.输入和输出 Java的I ...
- Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode
Atitit.软件开发概念说明--io系统区--特殊文件名称保存最佳实践文件名称编码...filenameEncode 不个网页title保存成个个文件的时候儿有无效字符的问题... 通常两个处理方式 ...
- Qt-QML-C++交互实现文件IO系统
QMl是没有自己的文件IO控制的,这里如果我们需要对文件进行读写操作,那么就需要去C++或者JS完成交互,交互方式有多种,由于我还没有掌握,这里就不介绍具体的交互方式了.这里就简单说明一下我的实现过程 ...
随机推荐
- Python-字符串开头或结尾匹配
startswith() 和 endswith() 方法提供了一个非常方便的方式去做字符串开头和结尾的检查. 1.查看指定目录下的所有文件名 >>> import os >&g ...
- Sybase datetime 时间转换格式 convert(varchar(10),字段名,转换格式)
convert(varchar(10),字段名,转换格式)sybase下convert函数第三个参数(时间格式)比如:1.select user_id,convert(varchar(10),dayt ...
- android 自定义view之 TypeArray
在定义view的时候,我们可以使用系统提供的属性,也可以自定义些额外的属性来设置自定义view的样式,这个时候,我们就需要TypeArray,字面意思就是Type 数组. 今天我们就讲讲如何自定义Vi ...
- java文件io过滤器
package cn.stat.p1.file; import java.io.File; public class newfilelist { /** * @param args */ public ...
- CentOS6.5 PHP基础环境搭建 [个人整理-亲测可用]
** * CentOS6.5 搭建基础PHP环境(yum安装) * http://www.aiplaypc.com/160.html ** #安装需要的包,有依赖关系,自动帮你解决 yum ins ...
- string的一些操作,类似数组
1.串的切割 var a="hello world";//a.length=11 alert(a.slice(3)); alert(a.substring(3)); alert(a ...
- CODEVS 1287 矩阵乘法
1287 矩阵乘法 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊) ...
- Mysql 卡死的处理办理
使用用show processlist 命令进去数据库查 或者用phpMyAdmin查也可以 .
- 近期Responsive web design项目经验分享
关于meta <meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, user ...
- 4月13日 php
用php打印乘法表: <html> <head> <title>我的第一个PHP页面</title> </head> <body> ...