java 21 - 8 复制文本文件的5种方式

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

首先写main方法

 1     public static void main(String[] args) throws IOException {
 2         // 数据源
 3         String startfile = "C:\\Users\\Administrator\\Desktop\\新建文件夹\\start.txt";
 4         // 目的地
 5         String endfile = "C:\\Users\\Administrator\\Desktop\\新建文件夹\\end.txt";
 6
 7         //method1(startfile,endfile);
 8         //method2(startfile,endfile);
 9         //method3(startfile,endfile);
10         //method4(startfile,endfile);
11         method5(startfile,endfile);
12
13     }

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

 1     private static void method1(String startfile,String endfile) throws IOException {
 2         // 基本字符流一次读写一个字符
 3         //封装数据源
 4         FileReader fr = new FileReader(startfile);
 5         //封装目的地
 6         FileWriter fw = new FileWriter(endfile);
 7
 8         //一次读写一个字符
 9         int ch = 0;
10         while((ch = fr.read()) != -1){
11             fw.write(ch);
12         }
13         //释放资源
14         fr.close();
15         fw.close();
16     }

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

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

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

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

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

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

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

    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();

    }
时间: 2024-10-12 22:37:09

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

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

1. 复制图片的 4 种方式案例: 分析: 复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流. 通过该原理,我们知道我们应该采用字节流. 而字节流有4种方式,所以做这个题目我们有4种方式.推荐掌握第4种. 数据源: c:\\a.jpg -- FileInputStream -- BufferedInputStream 目的地: d:\\b.jpg -- FileOutputStream -- BufferedOutputStream 2. 4 种方式代码示例: 1 pack

字符流复制文件的5种方式

package 传智播客.day21_io.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; imp

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

Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName 静态方法. 前提:已明确类的全路径名. 第二种,使用 .class 方法. 说明:仅适合在编译前就已经明确要操作的 Class 第三种,使用类对象的 getClass() 方法. 适合有对象示例的情况下 package com.reflection; /** * Created by Liuxd

【java多线程】多线程的创建三种方式--笔记

申明:线程的概念以及进程的相关概念,可以参考网络上其他资料,这里只讨论多线程是怎么实现. 一.多线程的简单理解 明白什么是多线程,小生通俗一点的理解为:在一个程序里,我想同时让这个程序完成多个任务. 比如:让主函数 main 在打印1~100之间的所有整数的时候,要求在主函数打印到 20 的时候,再运行另一个类里的程序,让它打印10~100之间的所有整数. 这里忽略同进程内的多线程之间的抢占时间问题,上面的举例需求是要求一个程序只要有发生同时运行俩个程序的情况就行,即不准出现无论程序跑多少次都是

字节流复制视频的四种方式

package com.io.liushuaishuai; /* 四种方式复制视频 记录时间 1 基本字节流一次一个字节 2基本字节流一次一个字节数组 3字节缓冲流1 基本字节流一次一个字节 4字节缓冲流一次一个字节数组 */ import java.io.*; public class CopyMp4Demo { public static void main(String[] args) throws IOException { //记录开始时间 long start = System.cu

Java中 实现多线程成的三种方式(继承,实现,匿名内部类)

------------------------------------------------------------------------------------------------------------ /** 第一种方式:继承Thread类 *             1. 定义一个类,然后让该类继承Thread类 *             2. 重写run方法 *             3. 创建定义的这个类的对象 *             4. 启动线程 */ //继承

Java并发编程-创建线程的两种方式及区别

转载请注明:http://blog.csdn.net/UniKylin/article/details/45016117 1.线程和进程的区别 并行:是多个任务在同一时间同时执行,例如多核计算机同时计算的任务可以理解为并行 并发:从微观上看是多个任务抢占一个CPU从而执行自己的任务,轮流执行任务,但是如果遇到资源冲突的时候并没有从根本提高执行效率.但是提高了CPU的使用效率. 前段时间在GitHub上的一幅图可以很好的阐述上面的概念非常形象 2.Java中创建线程的两种方式 1.第一种方式:直接

java生成二维码的几种方式

1: 使用SwetakeQRCode在Java项目中生成二维码 http://swetake.com/qr/ 下载地址 或着http://sourceforge.jp/projects/qrcode/downloads/28391/qrcode.zip 这个是日本人写的,生成的是我们常见的方形的二维码 可以用中文 如:5677777ghjjjjj 2: 使用BarCode4j生成条形码和二维码 BarCode4j网址:http://sourceforge.NET/projects/barcode

通过java类获取项目绝对路径两种方式

经常会遇到通过java类获取项目路径,并且通过该相对路径或者绝对路径加载资源文件的问题.通常最常用的的两种方式是通过classLoader或者class的getResource()方法. public static final String getPath(){ String path1 = Constant.class.getClassLoader().getResource("").getPath(); String path2 = Constant.class.getClassL