需求:复制文本文件
分析:
  由于文本文件我们用记事本打开后可以读懂,所以使用字符流。
  而字符流有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. (八)play之yabe项目【身份验证】

    (八)play之yabe项目[身份验证] 博客分类: 框架@play framework   添加身份验证 play提供了一个模块-Secure(安全模块),用来做身份验证 允许Secure模块 修改 ...

  2. .net mysql 支持表情

    1.表 utf8mb4 2.字段  utf8mb4 3.连接字符串 utf8mb4 4.存储过程参数  utf8mb4

  3. FIM 2010: Kerberos Authentication Setup

    The goal of this article is to provide some background information regarding the Kerberos related co ...

  4. android XMl 解析神奇xstream 二: 把对象转换成xml

    前言:对xstream不理解的请看:android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 1.Javabeen 代码 packa ...

  5. IOS 杂笔-10(Base64 加密)

    base64加密是可逆的,因此并不是很安全,在一些注重安全的地方很少用到,但是在普通传输中可以使用. 切忌,base64加密是不安全的. // // ViewController.m // CX-Ba ...

  6. IOS-UITextField-全解

    IOS-UITextField-全解   //初始化textfield并设置位置及大小   UITextField *text = [[UITextField alloc]initWithFrame: ...

  7. IOS开发--常用的基本GDB命令

    gdb不是万能的,可是没有gdb却是万万不能的.这里给大家简单介绍下iOS开发中最基本的gdb命令. po po是print-object的简写,可用来打印所有NSObject对象.使用举例如下: ( ...

  8. Jmeter之HTTP Request Defaults

    一.HTTP Request Defaults的作用: 该组件可以为我们的http请求设置默认的值.假如,我们创建一个测试计划有很多个请求且都是发送到相同的server,这时我们只需添加一个Http ...

  9. 转 HighCharts笔记之: Bar Chart

    最近需要做一些Web图标,研究了几个开源的第三方工具后,最后决定使用HighCharts开发: Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是 ...

  10. 算法(三)粒子群算法PSO的介绍

    一.引言 在讲算法之前,先看两个例子: 例子一:背包问题,一个书包,一堆物品,每个物品都有自己的价值和体积,装满书包,使得装的物品价值最大. 例子二:投资问题,n个项目,第i个项目投资为ci 收益为p ...