字符流复制文件的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;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

/**

*

* 复制文本文件

*

* 分析: 复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流。 通过该原理,我们知道我们应该采用字符流更方便一些。

* 而字符流有5种方式,所以做这个题目我们有5种方式。推荐掌握第5种。 数据源: c:\\a.txt -- FileReader --

* BufferdReader 目的地: d:\\b.txt -- FileWriter -- BufferedWriter

*

*/

public class test7 {

         public static void main(String[] args) throws IOException {

                   String srcString = "c:\\a.txt";

                   String distString = "d:\\b.txt";

                   // method1(srcString, distString);

                   // method2(srcString, distString);

                   // method3(srcString,distString);

                   // method4(srcString,distString);

                   method5(srcString, distString);

         }

// 字符 缓存(高效)流,一次读写一个字符串

   private static void method5(String srcString, String distString) throws IOException {

                   BufferedReader br = new BufferedReader(new FileReader(srcString));

                   BufferedWriter bw = new BufferedWriter(new FileWriter(distString));

                   String line = null;

                   while ((line = br.readLine()) != null) {

                            bw.write(line);

                            bw.newLine();

                            bw.flush();

                   }

                   bw.close();

                   br.close();

         }

// 缓存(高效)字符流,一次读写一个字符数组

 private static void method4(String srcString, String distString) throws IOException {

                   BufferedReader br = new BufferedReader(new FileReader(srcString));

                   BufferedWriter bw = new BufferedWriter(new FileWriter(distString));

                   char[] chs = new char[1024];

                   int len = 0;

                   while ((len = br.read(chs)) != -1) {

                            bw.write(chs, 0, len);

                   }

                   bw.close();

                   br.close();

         }

// 缓存(高效)字符流,一次读写一个字符

  private static void method3(String srcString, String distString) throws IOException {

                   BufferedReader br = new BufferedReader(new FileReader(srcString));

                   BufferedWriter bw = new BufferedWriter(new FileWriter(distString));

                   int ch = 0;

                   while ((ch = br.read()) != -1) {

                            bw.write(ch);

                   }

                   bw.close();

                   br.close();

         }

// 基本字符流,一次读写一个字符数组

private static void method2(String srcString, String distString) throws IOException {

                   FileReader fr = new FileReader(srcString);

                   FileWriter fw = new FileWriter(distString);

                   char[] chs = new char[1024];

                   int len = 0;

                   // 注意,这里的read有参数字符数组

                   while ((len = fr.read(chs)) != -1) {

                            fw.write(chs, 0, len);

                   }

                   fw.close();

                   fr.close();

         }

// 基本字符流,一次读写一个字符

   private static void method1(String srcString, String distString) throws IOException {

                   FileReader fr = new FileReader(srcString);

                   FileWriter fw = new FileWriter(distString);

                   int ch = 0;

                   while ((ch = fr.read()) != -1) {

                            fw.write(ch);

                   }

                   fw.close();

                   fr.close();

         }}

原文地址:https://www.cnblogs.com/csslcww/p/9179330.html

时间: 2024-10-29 15:07:22

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

java复制文件的4种方式

1. 使用FileStreams复制 这是最经典的方式将一个文件的内容复制到另一个文件中. 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B. 这是第一个方法的代码: private static void copyFileUsingFileStreams(File source, File dest)         throws IOException {         InputStream input = null;         

java使用字节流和字符流实现文件复制

大家在Java开发中都会遇到文件复制的文件,众所周知,需要通过文件输入输出流实现. 那究竟该怎么做那,话不多说,直接上代码: 一,使用字节流复制文件 public class FileByteCopy {public static void main(String[] args) { FileByteCopy f= new FileByteCopy(); try { f.copy("d:/File/1.txt","d:/CopyFile/1.txt"); } cat

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

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

使用字符流 创建文件 写入文件 复制文件

import java.io.*; /**   * 使用字符流创建文件复制文件  * 在盘符中文件夹  * 在文件夹中添加文件  * 在文件中写文字  *   复制文件  * */ public class Iof {    public static void main(String[] args) {        try {            fun();                System.out.println();            fun1();          

解析Xml文件的三种方式及其特点

解析Xml文件的三种方式 1.Sax解析(simple api  for xml) 使用流式处理的方式,它并不记录所读内容的相关信息.它是一种以事件为驱动的XML API,解析速度快,占用内存少.使用回调函数来实现. 1 class MyDefaultHander extends DefaultHandler{ 2 private List<Student> list; 3 private Student student; 4 5 @Override 6 public void startDo

Asp.Net 下载文件的几种方式

asp.net下载文件几种方式 protected void Button1_Click(object sender, EventArgs e) { /* 微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite 下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题. 代码如下: */ Response.ContentType = "application/x-zip-compressed";

使用IO流复制文件夹(包括子目录)

IO流用于处理设备上的数据(包括硬盘,内存,键盘录入). IO流可根据流向不同分为输入流和输出流,根据处理数据类型不同分为字节流和字符流. 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本质其实就是基于字节流读取时,去查了指定的码表. 字节流和字符流的区别: a.读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节. b.处理对象不同:字节流能处理所有类型的数据(如图片.avi等),而字符流只能处理字符类型的数据. 结论:

Python复制文件的九种方法

以下是演示"如何在Python中复制文件"的九种方法. shutil copyfile()方法 shutil copy()方法 shutil copyfileobj()方法 shutil copy2()方法 os popen方法 os系统()方法 Thread()方法 子进程调用()方法 子进程check_output()方法 1. Shutil Copyfile()方法 该方法只有在目标可写时才将源的内容复制到目的地.如果您没有写入权限,则会引发IOError. 它通过打开输入文件进

Eclipse项目中引用第三方jar包时将项目打包成jar文件的两种方式

转载自:http://www.cnblogs.com/lanxuezaipiao/p/3291641.html 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,内容如下: Manifest-Version: 1.0 Class-Path: lib/commons-codec.jar lib/commons-htt