文件字符流(FileReader,FileWriter文件的复制)

  • 文件的复制

    1. 效率低的方法

    注意:字符流需要刷新操作,字节流不需要,只有刷新后才可以将程序中的内容导入到目标文件中

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的动作
}
}
  1. 效率高的方法(还是利用缓冲数组加快读取速度)
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的动作
}
}
  1. 处理异常的方式(自己捕获)
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文件的复制))的更多相关文章

  1. 08 IO流(五)——文件字符流FileWriter/FileReader

    对比文件字节流的优势 对于文本文件的数据传输,使用文件字符流,就不用考虑编码转码的问题. 对比文件字节流,在方法上的不同有哪些 文件字符流有append方法: Writer append(char c ...

  2. JAVA之旅(二十四)——I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习

    JAVA之旅(二十四)--I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习 JAVA之旅林林总总也是写了二十多篇了,我们今天终于是接触到了I/O了 ...

  3. java io流(字符流) 文件打开、读取文件、关闭文件

    java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*; public class Index{ public sta ...

  4. (19)IO流之字符流FileReader和FileWriter,缓冲字符流---缓冲输入字符流BufferedReader和缓冲输出字符流BufferedWriter

    字符流,读取的文件是字符的时候,有两个基类一个是Reader,一个是Writer这有点拟人的感觉,人直接看懂的是文字 字符流 字节流:读取的是文件中的二进制字节流并不会帮你转换成看的懂得字符 字符流: ...

  5. java IO流 之 字符流

    字符是我们能读懂的一些文字和符号,但在计算机中存储的却是我们看不懂的byte 字节,那这就存在关于字符编码解码的问题.所以在学习Io流的字符流前我们先了解些关于编码问题. 一.字符集与字符编码 1.什 ...

  6. JAVA IO 字节流与字符流

    文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节.     ...

  7. io系列之字符流

    java中io流系统庞大,知识点众多,作为小白通过五天的视频书籍学习后,总结了io系列的随笔,以便将来复习查看. 本篇为此系列随笔的第一篇:io系列之字符流. IO流 :对数据的传输流向进行操作,ja ...

  8. Java IO 字节流与字符流 (五)

    Java的IO流分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),字节流顾名思义字节流就是将文件的内容读取到字节数组,然后再输出到另一个文件中.而字 ...

  9. JAVA之IO流(字符流)

    字符流InputStreamReader和OutputStreamWriter是Writer和Read的子类:是字节流通向字符流的桥梁,也就是可以把字节流转化为字符流. InputStreamRead ...

随机推荐

  1. CustomEvent & Event

    CustomEvent & Event js 自定义事件 const event = new CustomEvent(typeArg, customEventInit); // add an ...

  2. Web 实时通信方案 All In One

    Web 实时通信方案 All In One HTTP 轮询, 单向通信,开销大 HTTP 长轮询, 单向通信,开销较小 WebSocket,双向通信,开销小 (TCP 高延迟,保证数据完整性) Ser ...

  3. HTML5 Server-Sent Events

    HTML5 Server-Sent Events SSE demo https://www.w3schools.com/html/tryit.asp?filename=tryhtml5_sse htt ...

  4. 「NGK每日快讯」12.22日NGK第49期官方快讯!

  5. python 相对路径和绝对路径的区别

    一,Python中获得当前目录和上级目录 获取当前文件的路径: from os import path d = path.dirname(__file__) #返回当前文件所在的目录 # __file ...

  6. 【转】主成分分析(PCA)

    原文网址:https://blog.csdn.net/sunshine_in_moon/article/details/51513880.转载主要方便随时可以查看,如有版权要求请及时联系. 相信大家对 ...

  7. mybatis 一对多和多对一 简单案例笔记

    以案例说明(以下案例代码都敲过验证过) 多对一(多个学生对一个老师  即学生集合中都存一个老师对象) Mybatis多对一实现方式1: //定义Student 和 Teacher 实体 @Data p ...

  8. vue之v-for遍历下拉框select和单选框组radio-group

    1.v-for遍历下拉框 <el-form-item label="审核状态:" prop="status"> <el-select v-mo ...

  9. Element-UI远程搜索功能详解

    官方代码: <template> <div> <el-autocomplete v-model="state" :fetch-suggestions= ...

  10. 资源授权?对OAuth2.0的一次重新认识的过程

    什么是OAuth? OAuth一个开放的授权标准,允许用户在不提供关键信息(如账号,密码)给第三方应用的前提下,让第三方应用去访问用户在某网站上的资源(如头像,用户昵称等). OAuth分为OAuth ...