复制java文件

需求:把模块目录下的"ConversionStreamDemo.java"复制到模块目录下的"Copy.java"

思路:

        根据数据源创建字符输入流对象

        根据目的地创建字符输出流对象

        读写数据,复制文件

        释放资源

package com.aynu9;

//需求:把模块目录下的"ConversionStreamDemo.java"复制到模块目录下的"Copy.java"
//
//        思路:
//            根据数据源创建字符输入流对象
//            根据目的地创建字符输出流对象
//            读写数据,复制文件
//            释放资源

import java.io.*;

public class CopyJavaDemo {
    public static void main(String[] args) throws IOException {
        //根据数据源创建字符输入流对象
        InputStreamReader isr=new InputStreamReader(new FileInputStream("D:\\idea1\\workplace\\myMap\\osw.txt"));

        //根据目的地创建字符输出流对象
        OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\idea1\\workplace\\myMap\\Copy.java"));

        //读写数据,复制文件
        //一次读写一个字符数据
//        int ch;
//        while((ch= isr.read())!=-1){
//            osw.write(ch);
//        }
        
        //一次读写一个字符数组的数据
        char[] chs=new char[1024];
        int len;
        while ((len= isr.read())!=-1){
            osw.write(chs,0,len);
        }

        //释放资源
        osw.close();
        isr.close();

    }
}

优化方案:

        转换流的名字比较长,而我们常见的操作都是按照本地默认编码实现的,所以,为了简化书写,转换流提供了对应的子类

        FileReader:用于读取字符文件的便捷类

                FileReader(String filename)

        FileWriter:用于写入字符文件的便捷类

                FileWriter(String fileName)

        数据源和目的地的分析

                数据源:myCharStream\\ConversionStreamDemo.java---读数据---Reader---InputStreamReader---FileReader

                目的地:myCharStream\\Copy.java---写数据---Writer---OutputStreamWriter---FileWriter 

你可能感兴趣的:(java)