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 ...
随机推荐
- Go语言实现:【剑指offer】用两个栈实现队列
该题目来源于牛客网<剑指offer>专题. 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. Go语言实现: var list1 = list.New( ...
- JDBC访问数据库的具体步骤(MySql + Oracle + SQLServer)
* 感谢DT课堂颜群老师的视频讲解(讲的十分仔细,文末有视频链接) import java.sql.Connection; import java.sql.DriverManager; import ...
- 手写Tomcat
学习JavaWeb之后,只知道如何部署项目到Tomcat中,而并不了解其内部如何运行,底层原理为何,因此写下此篇博客初步探究一下.学习之前需要知识铺垫已列出:Tomcat目录结构.HTTP协议.IO. ...
- golang的timer一些坑
本文代码部分基于dive-to-gosync-workshop的代码 Golang 的NewTimer方法调用后,生成的timer会放入最小堆,一个后台goroutine会扫描这个堆,将到时的time ...
- javascript get set读取器
class Person{ constructor(name, id){ let _name = name, _id = id; Object.defineProperties(this, { nam ...
- 使用docker搭建FastDFS
拉取镜像(使用docker-componse可以忽略) [root@localhost ~]# docker pull phinexdaz/fdfs_tracker [root@localhost ~ ...
- Properties(hashtable的子类)
Properties: Properties是hashtable的子类(在java.util包中).该集合的特点:可以用于键值对形式的配置文件,且不允许Key重复,若有重复的,后者会覆盖前者. 也就是 ...
- Zookeeper分布式系统协同器概念快速学习
原文格式可以访问:https://www.rockysky.tech 分布式系统的基本操作 主节点选举:在绝大多数分布式系统中,都需要进行主节点选举.主节点负责管理协调其它节点或者同步集群中其它节点的 ...
- 刷题85. Maximal Rectangle
一.题目说明 题目,85. Maximal Rectangle,计算只包含1的最大矩阵的面积.难度是Hard! 二.我的解答 看到这个题目,我首先想到的是dp,用dp[i][j]表示第i行第j列元素向 ...
- MySQL保存微信昵称中的特殊符号造成:(Incorrect string value: "xxxx'for column ‘name’ at row 1)异常
今天有业务员反应,编辑某个用户的信息的时候出现了异常,异常信息如下: Incorrect string value: "xFOx9Fx92x9D vxE6..'f or column 'na ...