io流(文件字符流(FileReader,FileWriter文件的复制))
文件字符流(FileReader,FileWriter文件的复制)
文件的复制
- 效率低的方法
注意:字符流需要刷新操作,字节流不需要,只有刷新后才可以将程序中的内容导入到目标文件中
package com.bjsxt.test03;
import java.io.*;
public class Test {
public static void main(String[] args) throws IOException {
//1.确定源文件
File f1 = new File("D:\\a\\b.txt");
//2.确定目标文件
File f2 = new File("D:\\a\\a.txt");
//3.一根管插入源文件中
FileReader fr = new FileReader(f1);
//4.一根管插入目标文件中
FileWriter fw = new FileWriter(f2);
//5.开始动作
int n = fr.read();
while(n!=-1){
fw.write(n);//这里写出的内容都是数字,因为n是int类型,不过可以强转为char类型
n=fr.read();
}
//6.关闭流
fw.close();
fr.close();
//fw.flush(); 也可以这样,如果你写的是关闭流,那么底层自动帮你做了flush的动作
}
}
- 效率高的方法(还是利用缓冲数组加快读取速度)
package com.bjsxt.test03;
import java.io.*;
public class Test02 {
public static void main(String[] args) throws IOException {
//1.确定源文件
File f1 = new File("D:\\a\\b.txt");
//2.确定目标文件
File f2 = new File("D:\\a\\a.txt");
//3.一根管插入源文件中
FileReader fr = new FileReader(f1);
//4.一根管插入目标文件中
FileWriter fw = new FileWriter(f2);
//5.开始动作
char[] ch = new char[4];
int len = fr.read(ch);
while(len!=-1){
fw.write(ch,0,len);
len=fr.read(ch);
}
//6.关闭流
fw.close();
fr.close();
//fw.flush(); 也可以这样,如果你写的是关闭流,那么底层自动帮你做了flush的动作
}
}
- 处理异常的方式(自己捕获)
package com.bjsxt.test03;
import java.io.*;
public class Test03 {
public static void main(String[] args){
//1.确定源文件
File f1 = new File("D:\\a\\b.txt");
//2.确定目标文件
File f2 = new File("D:\\a\\a.txt");
//3.一根管插入源文件中
FileReader fr = null;
FileWriter fw =null;
try {
fr = new FileReader(f1);
//4.一根管插入目标文件中
fw = new FileWriter(f2);
//5.开始动作
char[] ch = new char[4];
int len = fr.read(ch);
while(len!=-1){
fw.write(ch,0,len);
len=fr.read(ch);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {//自己捕获的异常
e.printStackTrace();
} finally {
//6.关闭流
try {
fw.close();
} catch (IOException e) {//自己捕获的异常
e.printStackTrace();
}
try {
fr.close();
} catch (IOException e) {//自己捕获的异常
e.printStackTrace();
}
//不把他两放在一个异常的原因是:如果上面那个有问题,那么下面的io流就不会被关闭
//fw.flush(); 也可以这样,如果你写的是关闭流,那么底层自动帮你做了flush的动作
}
}
}
io流(文件字符流(FileReader,FileWriter文件的复制))的更多相关文章
- 08 IO流(五)——文件字符流FileWriter/FileReader
对比文件字节流的优势 对于文本文件的数据传输,使用文件字符流,就不用考虑编码转码的问题. 对比文件字节流,在方法上的不同有哪些 文件字符流有append方法: Writer append(char c ...
- JAVA之旅(二十四)——I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习
JAVA之旅(二十四)--I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习 JAVA之旅林林总总也是写了二十多篇了,我们今天终于是接触到了I/O了 ...
- java io流(字符流) 文件打开、读取文件、关闭文件
java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*; public class Index{ public sta ...
- (19)IO流之字符流FileReader和FileWriter,缓冲字符流---缓冲输入字符流BufferedReader和缓冲输出字符流BufferedWriter
字符流,读取的文件是字符的时候,有两个基类一个是Reader,一个是Writer这有点拟人的感觉,人直接看懂的是文字 字符流 字节流:读取的是文件中的二进制字节流并不会帮你转换成看的懂得字符 字符流: ...
- java IO流 之 字符流
字符是我们能读懂的一些文字和符号,但在计算机中存储的却是我们看不懂的byte 字节,那这就存在关于字符编码解码的问题.所以在学习Io流的字符流前我们先了解些关于编码问题. 一.字符集与字符编码 1.什 ...
- JAVA IO 字节流与字符流
文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节. ...
- io系列之字符流
java中io流系统庞大,知识点众多,作为小白通过五天的视频书籍学习后,总结了io系列的随笔,以便将来复习查看. 本篇为此系列随笔的第一篇:io系列之字符流. IO流 :对数据的传输流向进行操作,ja ...
- Java IO 字节流与字符流 (五)
Java的IO流分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),字节流顾名思义字节流就是将文件的内容读取到字节数组,然后再输出到另一个文件中.而字 ...
- JAVA之IO流(字符流)
字符流InputStreamReader和OutputStreamWriter是Writer和Read的子类:是字节流通向字符流的桥梁,也就是可以把字节流转化为字符流. InputStreamRead ...
随机推荐
- Dyno-queues 分布式延迟队列 之 基本功能
Dyno-queues 分布式延迟队列 之 基本功能 目录 Dyno-queues 分布式延迟队列 之 基本功能 0x00 摘要 0x01 Dyno-queues分布式延迟队列 1.1 设计目标 1. ...
- AirPods Max 出厂激活是怎么回事
AirPods Max 出厂激活是怎么回事 话说出厂激活是怎么检测出来的 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问! 原创文 ...
- vi, vim 使用教程
vim 使用教程 ```shcd lscd ../cd -pwdcprmmkdirtarmvmbtar -zcfchmodsshtopqfree ``` 数字0含空字符到行首,^不含空字符到行首.G移 ...
- git commit guidelines
git-commit-guidelines AngularJS Development Setup Running Tests Coding Rules Commit Message Guidelin ...
- Introduction to JavaScript Source Maps
下载jquery时候发现:jquery.min.map 这什么鬼呀? https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/core.js http ...
- code to markdown auto converter
code to markdown auto converter code => markdown how to import a js file to a markdown file? // a ...
- how to fetch html content in js
how to fetch html content in js same origin CORS fetch('https://cdn.xgqfrms.xyz/') .then(function (r ...
- Flutter & UI system & GUI & API & SDK
Flutter & UI system & GUI & API & SDK https://book.flutterchina.club/chapter14/flutt ...
- rxjs 常用的subject
api列表 Subject Subject是可观察的一种特殊类型,它允许将值多播到许多观察者 import {Subject} from 'rxjs'; const l = console.log; ...
- 教你玩转CSS Overflow
CSS 布局 - Overflow CSS overflow 属性用于控制内容溢出元素框时显示的方式. <style> #overflowTest { background: #4CAF5 ...