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 ...
随机推荐
- Google Chrome All In One
Google Chrome All In One Chrome Experiments Chrome 测试版 Chrome 开发者版 Chrome Canary 版 chrome://welcome/ ...
- free open music API all in one
free open music API all in one music API SoundCloud xgqfrms · free https://w.soundcloud.com/player/? ...
- Nestjs mongodb
nestjs 文档 mongoose 文档 使用"@meanie/mongoose-to-json"转换查询后返回的json数据 将"_id"转为"i ...
- Chrome DevTools & console & filter warning
Chrome DevTools & console & filter warning
- 用Qt写了个将视频设置为壁纸的软件
软件功能很简单,使用时占用的资源和播放的视频有关: 依赖于FFplay,Github源码 效果图:
- 什么是NGK节点?NGK的节点有什么作用?
从2018年EOS竞选超级节点火爆整个区块链圈,节点和超级节点就成为了热议的话题,时至今日,热度依然不减.节点是项目生态发展的重要组成部分,超级节点对项目的运行.安全更是起着至关重要的作用. 什么 ...
- BGV再掀DeFi投资热潮,NGK全球启动大会圆满落幕
此次全球启动大会的主题为"BGV再掀DeFi投资热潮,后市发展如何". 首先发言的是NGK灵石团队首席技术官STEPHEN先生,他先是对出席此次大会的嘉宾.到场的媒体记者以及NGK ...
- Java流程控制:循环结构
一.简介 顺序结构的程序语句只能被执行一次,如果您想要同样的操作执行多次,就需要使用循环结构. Java中有三种主要的循环结构: 'while'循环 'do...while'循环 'for'循环 在J ...
- WPF -- 一种实现本地化的方法
本文介绍一种WPF程序实现本地化的方法. 步骤 首先,假设xaml文件中存在一个Button按钮,内容为"按钮",实现本地化的步骤如下: 展开程序的Properties,双击Res ...
- 第47天学习打卡(HTML)
什么是HTML HTML Hyper Text Markup Language(超文本标记语言) 超文本包括:文字,图片,音频,视频,动画等 HTML5,提供了一些新的元素和一些有趣的新特性,同时也建 ...