Skip to content Skip to sidebar Skip to footer

Menyalin File Pada Java Menggunakan Class FileInputStream dan FileOutputStream

Hallo gan, pada kesempatan kali ini kita akan melihat penggunaan class FileInputStream dan juga FileOutputStream untuk menyalin file.

Pada dasarnya, program ini terbagi dalam 5 langkah praktis yang mudah diikuti, yaitu:
  1. Menggunakan constructor FileInputStream untuk membuka sumber file dalam mode pembacaan.
  2. Membuka target file dalam mode penulisan menggunakan constructor FileOutputStream.
  3. Membaca isi file menggunakan method read().
  4. Menuliskan data pada file target / tujuan, menggunakan method write(int)
  5. Menutup streams menggunakan method close() ketika tugas telah selesai
Berikut ini adalah contohnya:

Di sini misalkan terdapat sebuah file text pada direktori C:/bahasajavacom/myfile.txt dan isinya akan di salin ke C:/bahasajavacom/copymyfile.txt

package com.bahasajava.io;

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

public class MenyalinFile {
 
 public static void main(String[] args) {
  
  try {
   //myfile.txt adalah file sumber
   //FileInputStream melalui constructor-nya akan membuka file ini dalam mode pembacaan
   FileInputStream fileInputStream = new FileInputStream("C:/bahasajavacom/myfile.txt");
   
   //copymyfile.txt adalah file tujuan atau target
   //FileOutputStream melalui constructor-nya akan membuka file ini dalam mode penulisan
   FileOutputStream fileOutputStream = new FileOutputStream("C:/bahasajavacom/copymyfile.txt");
   /************************************************************************
    * Bila file tujuan ini tidak ada maka file baru akan dibuat dan
    * isi dari file sumber, yaitu myfile.txt akan disalin.
    * Namun, bila file tujuan sudah ada, maka file tersebut akan di overriden
    * dan artinya file lama akan hilang.
    * 
    * Oleh karena itu, untuk mencegahnya bisa menggunakan append mode
    * dengan memodifikasi kode pada di atas menjadi:
    * FileOutputStream fileOutputStream = new FileOutputStream("C:/combahasajava/copymyfile.txt", true);
    ************************************************************************/
   
   int i;
   
   /*************************************************************************************
    * Method read() dari class FileInputStream akan membaca byte per byte dari file sumber.
    * Ini sebenarnya mudah dipahami, bahwa method ini akan membaca nilai byte
    * kemudian byte tersebut dikonversi pada nilai integer ASCII dan kemudian dikembalikan.
    * Contohnya, bila file tersebut berisi karakter A, maka akan diconvert menjadi 65
    * dan kemudian dikembalikan lagi.
    * 
    * Method ini akan mengembalikan nilai -1 ketika mencapai EOF / end of file.
    * 
    *************************************************************************************/
   while( ( i = fileInputStream.read()) != -1 ){
    /*****************************************************
     * Method write(int) dari class FileOutputStream akan 
     * mengambil nilai int dari method read()
     *****************************************************/
    fileOutputStream.write(i);
    System.out.print((char) i);
   }
   //Menutup stream dan sebagai good programming practice
   fileInputStream.close();
   fileOutputStream.close();
   
    //FileNotFoundException merupakan checked exception dari kedua constructor di atas
  } catch (FileNotFoundException e) {
   System.out.println("File tidak ada! " + e);
   
    //IOException merupakan checked exception dari method read() dan write().
  } catch (IOException e) {
   System.out.println("Terdapat masalah ada I/O" + e);
  }
 } 

}

Contoh output:

Menyalin file text Java

Pada direktori target akan terdapat salinan file dari file sumber.

Post a Comment for "Menyalin File Pada Java Menggunakan Class FileInputStream dan FileOutputStream"