文件字符流(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. 探究为什么FreeRTOS 有些API不能在中断服务函数中调用,转而需要调用带ISR的版本

    用了好久的FreeRTOS以前只是知道,如果在中断服务程序中调用某一些FreeRTOS的API函数时需要注意,如果有ISR版本的一定要调用末尾带ISR的函数,并且中断服务程序要调用freeRTOS的A ...

  2. npm publish bug & solution

    npm publish bug & solution npm ERR! Unexpected token < in JSON at position 0 while parsing ne ...

  3. React Hooks: useMemo All In One

    React Hooks: useMemo All In One useMemo https://reactjs.org/docs/hooks-reference.html#usememo refs x ...

  4. 如何用 js 实现一个 class 类函数

    如何用 js 实现一个 class 类函数 原理 实现方式 总结 refs https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refere ...

  5. Apple & iOS & Device Screen Sizes and Orientations & React Native

    Apple & iOS & Device Screen Sizes and Orientations & React Native iOS devices https://de ...

  6. webpack & chunkhash

    webpack & chunkhash https://webpack.js.org/configuration/output/#outputchunkfilename https://web ...

  7. 详解稳定币圣杯USDN

    稳定币飞速发展,USDN 一骑绝尘,但因合规问题饱受质疑.合规稳定币作为后来者,奋起直追,亦光耀夺目.而更符合区块链精神的稳定币(抵押其他资产生成稳定币),长期以来只有 Maker 的 DAI 能够在 ...

  8. dotnet core TargetFramework 解析顺序测试

    dotnet core TargetFramework 解析顺序测试 Intro 现在 dotnet 的 TargetFramework 越来越多,抛开 .NET Framework 不谈,如果一个类 ...

  9. 不同浏览器CSS样式不兼容问题

    一句话,我想的太复杂了.向朋友请教才了解到,其实只要加个判断即可,首先获取到浏览器的基本信息,像什么版本啊,名称啊.默认语言啊等等,然后根据不同浏览器默认加载不同CSS样式即可,获取浏览器版本的连接如 ...

  10. 如何将IHttpHandler和IHttpModule迁移到ASP.NET Core中间件

    ASP.NET Core是一个跨平台.开源的框架,用于在Windows.Mac和Linux操作系统(OS)上开发web应用程序.你可以使用以下任何IDE开发ASP.NET Core 应用程序: Vis ...