需求:复制文本文件
分析:
  由于文本文件我们用记事本打开后可以读懂,所以使用字符流。
  而字符流有5种复制的方式:

首先写main方法

     public static void main(String[] args) throws IOException {
// 数据源
String startfile = "C:\\Users\\Administrator\\Desktop\\新建文件夹\\start.txt";
// 目的地
String endfile = "C:\\Users\\Administrator\\Desktop\\新建文件夹\\end.txt"; //method1(startfile,endfile);
//method2(startfile,endfile);
//method3(startfile,endfile);
//method4(startfile,endfile);
method5(startfile,endfile); }

第一种方式:基本字符流一次读取一个字符

     private static void method1(String startfile,String endfile) throws IOException {
// 基本字符流一次读写一个字符
//封装数据源
FileReader fr = new FileReader(startfile);
//封装目的地
FileWriter fw = new FileWriter(endfile); //一次读写一个字符
int ch = 0;
while((ch = fr.read()) != -1){
fw.write(ch);
}
//释放资源
fr.close();
fw.close();
}

第二种方式:基本字符流一次读取一个字符数组

     private static void method2(String startfile, String endfile) throws IOException {
// 基本字符流一次读写一个字符数组
FileReader fr = new FileReader(startfile);
FileWriter fw = new FileWriter(endfile); char[] ch = new char[1024];
int len = 0;
while((len = fr.read(ch)) != -1){
fw.write(ch,0,len);//这里需要注意
}
fr.close();
fw.close();
}

第三种方式:缓冲字符流一次读取一个字符

     private static void method3(String startfile, String endfile) throws IOException{
// 字符缓冲流一次读取一个字符
BufferedReader br = new BufferedReader(new FileReader(startfile));
BufferedWriter bw = new BufferedWriter(new FileWriter(endfile));
int ch = 0;
while((ch = br.read()) != -1){
bw.write(ch);
}
br.close();
bw.close(); }

第四种方式:缓冲字符流一次读取一个字符数组

     private static void method4(String startfile, String endfile) throws IOException {
// 字符缓冲流一次读取一个字符数组
BufferedWriter bw = new BufferedWriter(new FileWriter(endfile));
BufferedReader br = new BufferedReader(new FileReader(startfile));
char[] ch = new char[1024];
int len = 0;
while((len = br.read(ch)) != -1){
bw.write(ch,0,len);
}
br.close();
bw.close(); }

第五种方式:缓冲字符流一次读取一个字符串(熟练掌握)

    private static void method5(String startfile, String endfile) throws IOException {
// 字符缓冲流一次读取一个字符串
BufferedReader br = new BufferedReader(new FileReader(startfile));
BufferedWriter bw = new BufferedWriter(new FileWriter(endfile));
String line = null;
while((line = br.readLine()) != null){
bw.write(line);
bw.newLine(); }
br.close();
bw.close(); }

java 21 - 8 复制文本文件的5种方式的更多相关文章

  1. java 21 - 9 复制图片的4种方式

    需求:复制图片 分析: 因为图片我们用记事本打开后无法读懂,所以用字节流 并且字节流复制有4种方式,所以我们尝试4种方式. 推荐第四种:缓冲字节流一次读取一个字节数组 首先写main方法: publi ...

  2. Java基础知识强化之IO流笔记43:IO流练习之 复制文本文件的 5 种方式案例

     1. 案例分析: 分析: 复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流. 通过该原理,我们知道我们应该采用字符流更方便一些. 而字符流有5种方式,所以做这个题目我们有5种方 ...

  3. Java基础知识强化之IO流笔记44:IO流练习之 复制图片的 4 种方式案例

    1. 复制图片的 4 种方式案例: 分析: 复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流. 通过该原理,我们知道我们应该采用字节流. 而字节流有4种方式,所以做这个题目我们有 ...

  4. Java反射获取class对象的三种方式,反射创建对象的两种方式

    Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName ...

  5. js 复制文本的四种方式

    js 复制文本的四种方式 一.总结 一句话总结:js文本复制主流方法:document的execCommand方法 二.js 复制文本的四种方式 纯 转载复制,非原创 原地址:http://www.c ...

  6. mysql复制表的两种方式

    mysql复制表的两种方式. 第一.只复制表结构到新表 create table 新表 select * from 旧表 where 1=2 或者 create table 新表 like 旧表 第二 ...

  7. Java使用基本字节流OutputStream的四种方式对于数据复制(文本,音视频,图像等数据)

    //package 字符缓冲流bufferreaderDemo; import java.io.BufferedOutputStream; import java.io.FileInputStream ...

  8. Java数组声明与拷贝的几种方式

    Java数组声明的三种方式 第一种(声明并初始化):          数据类型[] 数组名={值,值,...};          例:int[] a = {1,2,3,4,5,6,7,8};    ...

  9. 总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇

    本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

随机推荐

  1. 使用Vue编写点击数字小游戏

    使用vue编写一个点击数字计时小游戏,列入你在文本框中输入3,点击开始会生成一个3行3列的表格,表格数据为1-9随机排列,这时候从1开始点击,按顺序点到9,当按正确顺序点击完毕,会提示所用的时间,如果 ...

  2. Fragment官方解析

    由于fragment和activity的生命周期很类似,对activity不熟悉的可以参考–深入了解Activity-生命周期, 深入理解Activity-任务,回退栈,启动模式, 概要 A Frag ...

  3. OC--代理模式

    一,代理设计模式的场合: 当对象A发生了一些行为,想告知对象B (让对象B成为对象A的代理对象) 对象B想监听对象A的一些行为 (让对象B成为对象A的代理对象) 当对象A无法处理某些行为的时候,想让对 ...

  4. Android性能优化(一)

    Android性能优化典范 1.大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能. 从设计师的角度,他们希望App能够有更多的动画,图片等时尚元素来实现流畅的用户体验. 但是Android ...

  5. Swift控制流

    本文简单的介绍swift一些基本语法的使用,在本文中不会做更深的剖析,只提及一些语法的简单的使用,快速学会编写swift程序.高手请绕路走嘿嘿 常量与变量: swift中定义所有的变量使用var,定义 ...

  6. iOS 修改label中文字的行间距

    UILabel *label = [[UILabel alloc] init]; label.font = [UIFont systemFontOfSize:]; label.textColor = ...

  7. 给你的Mr.Right画张择偶地图像

    爱一个人就算做不到爱他的全部,至少也应该尊重他的真实,而不是苛求他变成你想要的样子. 娶妻当娶郭芙蓉,经典语录.我是郭芙蓉,我不会武功,我来自江湖,我与众不同.再苦再累,就当自己是二百五,再难再险,就 ...

  8. ASP.NET MVC 在WebService中Token的使用方法

    最近发现公司接口的验密方式很简单,就是简单的用户名密码校验.客户方面的负责人说要修改一下,所以想起了微信的验证密码的方式故写了这个Demo以供大家学习参考: 接口:WebService 方式:Toke ...

  9. PS网页设计教程XXVI——如何在PS中创建一个专业的网页布局

    作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,“熟读唐诗三百首,不会作诗也会吟”. 本系列的教程来源于网上的PS教程,都是国外的,全英文的.本人尝试 ...

  10. java 接收 char字符型

    import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner; public clas ...