1. 程式人生 > >FileOutputStream的使用_檔案複製操作

FileOutputStream的使用_檔案複製操作

FileOutputStream

@Test
public void test4() {
    //1. 建立一個File物件,表明要寫入的檔案位置
    //輸出的物理檔案可以不存在,當執行過程中,不存在會自動建立
    File file = new File("hello3.txt");
    //2. 建立一個FileOutputStream的物件,將file的物件作為形參傳遞給FileOutputStream的構造器中
    FileOutputStream fos = null;

    try {
        fos = new FileOutputStream
(file); //3. 寫入操作 fos.write(new String("I love China").getBytes()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { //4. 關閉輸出流 if (fos != null){ try { fos.
close(); } catch (IOException e) { e.printStackTrace(); } } } }

從磁碟中複製檔案

//從磁碟中讀取一個檔案,並寫入到另一個位置(相當於檔案的複製)
@Test
public void test5(){
    //1. 提供讀入,寫出的檔案
    File file1 = new File("hello1.txt");
    File file2 = new File("hello3.txt");
    //2. 提供相應的流
FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream(file1); fos = new FileOutputStream(file2); //3. 實現檔案的複製 byte[] b = new byte[5]; int len; while ((len = fis.read(b))!= -1){ fos.write(b,0,len); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { if (fos != null){ try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } if (fis != null){ try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } }

將檔案中的地址轉換為引數,可以實現檔案的基本拷貝的方法

File file1 = new File("hello1.txt");
File file2 = new File("hello3.txt");

具體每次讀取大小根據檔案大小決定: byte[] b = new byte[5];