好记性不如赖笔头…………
使用FileReader读取文件、FileWriter写入文件的方法复制文件,只能复制字符型文件,不能复制流媒体文件
package com.Ckinghan.ioDemo;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;/** * 复制字符型文件,流媒体文件无法复制 * @author Ckinghan */public class FileCopy {public static void main(String args) {/*** 复制字符型文件,使用每次读取一个字符的方式*/copyFile1();/***复制字符型文件,使用每次读取一定字符数量的方式,这种方式,效率较高*/copyFile2();}/*** @描述:复制字符型文件,使用每次读取一定字符数量的方式,这种方式,效率较高* @创建时间:*/public static void copyFile2(){//创建读取对象FileReader reader = null;//创建写入对象FileWriter writer = null;try {//实例化读取对象reader = new FileReader("src/com/Ckinghan/CollectionDemo/CollectionsDemo.java");//实例化写入对象writer = new FileWriter("CollectionsDemo.java");//记录读取的字符个数int readerNum = -1;//规定每次读取的字符数量char cs = new char;//这种读取方式效率相对较高,建议使用while ((readerNum = reader.read(cs)) != -1) {writer.write(cs,0,readerNum);}System.out.println("使用一次性读取多个字符方式复制文件成功");//如果发生文件不存异常,捕获并输出} catch (FileNotFoundException e) {e.printStackTrace();//如果发生IO异常,捕获并输出}catch (IOException e) {e.printStackTrace();//无论如何,都要判断并关闭流}finally {try {//注意,要先关闭输出流,再关输入流,if(writer != null)writer.close();//关闭输入流if(reader != null)reader.close();} catch (IOException e) {e.printStackTrace();}}}/*** @描述:复制字符型文件,使用每次读取一个字符的方式* @创建时间:*/public static void copyFile1(){//创建读取对象FileReader reader = null;//创建写入对象FileWriter writer = null;try {//实例化读取对象reader = new FileReader("src/com/Ckinghan/CollectionDemo/CollectionsDemo.java");//实例化写入对象writer = new FileWriter("CollectionsDemo.java");//读取方式一,使用read()方法每次读取一个字符int charVal = -1;//这种读取方式效率比较低while ((charVal = reader.read()) != -1) {writer.write(charVal);}System.out.println("使用单个字符方式复制文件成功");//如果发生文件不存异常,捕获并输出} catch (FileNotFoundException e) {e.printStackTrace();//如果发生IO异常,捕获并输出}catch (IOException e) {e.printStackTrace();//无论如何,都要判断并关闭流}finally {try {//注意,要先关闭输出流,再关输入流,if(writer != null)writer.close();//关闭输入流if(reader != null)reader.close();} catch (IOException e) {e.printStackTrace();}}}}
