Java IO 文件的復制拷貝


FileInputStream FileOutputStream 對任意類型的文件 按字節數組進行拷貝

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/*
 *  字節流復制文件
 *   采用數組緩沖提高效率
 *   字節數組
 *   FileInputStream 讀取字節數組
 *   FileOutputStream 寫字節數組
 */
public class CopyFileByByte {
    public static void main(String[] args) {
        
        FileInputStream fis = null;
        FileOutputStream fos = null;
        try{
            fis = new FileInputStream("c:\\t.zip");
            fos = new FileOutputStream("d:\\t.zip");
            //定義字節數組,緩沖
            byte[] bytes = new byte[1024*10];
            //讀取數組,寫入數組
            int len = 0 ; 
            while((len = fis.read(bytes))!=-1){
                fos.write(bytes, 0, len);
            }
        }catch(IOException ex){
            System.out.println(ex);
            throw new RuntimeException("文件復制失敗");
        }finally{
            try{
                if(fos!=null)
                    fos.close();
            }catch(IOException ex){
                throw new RuntimeException("釋放資源失敗");
            }finally{
                try{
                    if(fis!=null)
                        fis.close();
                }catch(IOException ex){
                    throw new RuntimeException("釋放資源失敗");
                }
            }
        }
        
    }
}

 

 

 
        

FileReader FileWriter 僅限於文本文件的復制拷貝

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/*
 *  字符流復制文本文件,必須文本文件
 *  字符流查詢本機默認的編碼表,簡體中文GBK
 *  FileReader讀取數據源
 *  FileWriter寫入到數據目的
 */
public class Copy_2 {
    public static void main(String[] args) {
        FileReader fr = null;
        FileWriter fw = null;
        try{
            fr = new FileReader("c:\\1.txt");
            fw = new FileWriter("d:\\1.txt");
            char[] cbuf = new char[1024];//按字符數組讀取
            int len = 0 ;
            while(( len = fr.read(cbuf))!=-1){
                fw.write(cbuf, 0, len);
                fw.flush();//刷新緩存
            }
            
        }catch(IOException ex){
            System.out.println(ex);
            throw new RuntimeException("復制失敗");
        }finally{
            try{
                if(fw!=null)
                    fw.close();
            }catch(IOException ex){
                throw new RuntimeException("釋放資源失敗");
            }finally{
                try{
                    if(fr!=null)
                        fr.close();
                }catch(IOException ex){
                    throw new RuntimeException("釋放資源失敗");
                }
            }
        }
    }
}

 BufferedReader BufferedWriter

/*
 *  使用緩沖區流對象,復制文本文件
 *  數據源  BufferedReader+FileReader 讀取
 *  數據目的 BufferedWriter+FileWriter 寫入
 *  讀取文本行, 讀一行,寫一行,寫換行
 */
public class Copy_1 {
    public static void main(String[] args) throws IOException{
        BufferedReader bfr = new BufferedReader(new FileReader("c:\\w.log"));    
        BufferedWriter bfw = new BufferedWriter(new FileWriter("d:\\w.log"));
        //讀取文本行, 讀一行,寫一行,寫換行
        String line = null;
        while((line = bfr.readLine())!=null){
            bfw.write(line);//寫一行
            bfw.newLine();//寫換行
            bfw.flush();
        }
        bfw.close();
        bfr.close();
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM