IO流学习之字符流(二)
用字符流完成文档的复制:
测试文档:
代码1:
package InputOutput; import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException; public class CopyFileDemo1 {
public static void main(String[] args) throws IOException {
// 指定读取的文件位置
String path1 = "E:\\JavaCodeDemo\\InputOutput\\filewriter\\CopyReader.txt";
// 指定写入的文件位置
String path2 = "E:\\JavaCodeDemo\\InputOutput\\filewriter\\CopyWriter.txt";
// 创建输入流对象关联数据源文件
FileReader reader = new FileReader(path1);
// 创建输出流对象关联目的地文件
FileWriter writer = new FileWriter(path2);
// 读取文件
int flag = 0;
// 获取复制前时间
long time1 = System.currentTimeMillis();
while ((flag = reader.read()) != -1) {
writer.write(flag);
}
// 获取复制后时间
long time2 = System.currentTimeMillis();
// 释放资源
writer.close();
reader.close();
// 输出时间差
System.out.println("时间 : " + (time2 - time1));
}
}
结果:
上面代码使用字符流一个字符一个字符的读取,写入,下面尝试用字符数组进行复制文档,数据少时没有什么区别,但数据多了可以提高很多效率!
代码:
package InputOutput; import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException; public class CopyFileDemo2 {
public static void main(String[] args) throws IOException {
// 指定读取的文件位置
String path1 = "E:\\JavaCodeDemo\\InputOutput\\filewriter\\CopyReader.txt";
// 指定写入的文件位置
String path2 = "E:\\JavaCodeDemo\\InputOutput\\filewriter\\CopyWriter.txt";
// 创建输入流对象关联数据源文件
FileReader reader = new FileReader(path1);
// 创建输出流对象关联目的地文件
FileWriter writer = new FileWriter(path2);
// 读取文件
int flag = 0;
// 用字符组读取数据
char[] demo = new char[1024];
// 获取复制前时间
long time1 = System.currentTimeMillis();
while ((flag = reader.read(demo)) != -1) {
writer.write(demo, 0, flag);
}
// 获取复制后时间
long time2 = System.currentTimeMillis();
// 释放资源
writer.close();
reader.close();
// 输出时间差
System.out.println("时间 : " + (time2 - time1)); }
}
结果:
IO流学习之字符流(二)的更多相关文章
- IO流学习之字符流(三)
IO流之字符流缓冲区: 概念: 流中的缓冲区:是先把程序需要操作的数据保存在内存中,然后我们的程序读写数据的时候,不直接和持久设备之间交互,而改成和内存中的数据进行交互. 缓冲区:它就是临时存储数据, ...
- IO流学习之字符流(一)
IO流(Input/Output) 简介: 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数 ...
- java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝
接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个c ...
- Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
第一讲 IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都 ...
- java基础46 IO流技术(输出字符流/缓冲输出字符流)
一.输出字符流 1.1.输出字符流体系 --------| Writer:输出字符流的基类(抽象类) ----------| FileWriter:向文件输出数据输出字符流(把程序中的数据写到硬盘中 ...
- java IO的字节流和字符流及其区别
1. 字节流和字符流的概念 1.1 字节流继承于InputStream OutputStream, 1.2 字符流继承于InputStreamReader OutputStre ...
- javaio学习笔记-字符流类(1)
1.java.io包中的字符流类-BufferedReader和BufferedWriter: BufferedReader:缓存的输入字符流; BufferedWriter:缓存的输出字符流; In ...
- javaio学习笔记-字符流类(2)
1.java.io包中的字符流类-FileReader和FileWriter: BufferedReader:缓存的输入字符流; BufferedWriter:缓存的输出字符流; FileReader ...
- java学习之字符流与字节流的转换
package com.io; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExce ...
随机推荐
- Window下,Jenkins忘记密码解决方法
没有修改过密码的情况下找回初始密码(或者第一次部署的时候) 进入目录 D:\jenkins\secrets ,找到文件 initialAdminPassword 在jenkins页面,输入登录名adm ...
- python学习(8)实例:写一个简单商城购物车的代码
要求: 1.写一段商城程购物车序的代码2.用列表把商城的商品清单存储下来,存到列表 shopping_mail3.购物车的列表为shopping_cart4.用户首先输入工资金额,判断输入为数字5.用 ...
- Linux系统之LVS+Keepalived实现
1.简述lvs四种集群特点及使用场景 LVS集群有4种类型,分别是NAT.DR.TUN.FULLNAT 从工作方式来讲,NAT和FULLNAT都要修改请求报文的目标IP和目标端口(NAT)或源IP目标 ...
- 带你简单了解域名系统DNS
带你简单了解域名系统DNS 一.域名简介 1.1.DNS服务的作用 负责解析域名,将域名解析成IP地址. 1.2.域名系统概述 由于32位的IP地址并不容易记忆,人们往往喜欢记忆网站的域名.所以当我们 ...
- JavaScript Math方法的基本使用
1.Math.sin()方法 定义:返回一个数的正弦. 语法:Math.sin(x),x必须是一个数值. 实例: <!DOCTYPE html> <html lang="e ...
- Go 1.14 中 Cleanup 方法简介
目录 一般的测试 使用 defer 清除依赖 使用 Cleanup 关于t.Parallel 总结 原文:What's New In Go 1.14: Test Cleanup 单元测试通常遵循某些步 ...
- 异常 lock buffer failed for format 0x23
02-11 21:21:45.669625 14804 14815 W Monkey : // java.lang.RuntimeException: lock buffer failed for f ...
- Spring Boot JPA分页 PageRequest报错
在使用Spring Boot JPA分页 PageRequest分页时,出现如下错误: 本来以为是包导入出现了问题,结果发现并不是.导入包如下: 后来在网上查找相关资料,发现这样的用法,好像也可以用, ...
- instanceof读解
function instance(l,r){ let 0 = r.prototype; let v = l.__proto__; while(true){ if(v === null){ retur ...
- BUGFIX 09 - 记一次Java中String的split正则表达式匹配 - 引发`OutOfMemoryError: Java heap space`的oom异常 排查及解决 -Java根据指定分隔符分割字符串,忽略在引号里面的分隔符
问题简述 说白了,Java根据指定分隔符分割字符串,忽略在引号(单引号和双引号)里面的分隔符; oom压测的时候,正则匹配"(?=(?:[^\"]*\"[^\" ...