Belajar Pemrograman Java Dari Dasar

Menyalin File Pada Java Menggunakan Class FileReader dan FileWriter

Pada pembahasan sebelumnya anda sudah mengetahui cara menyalin file menggunakan class FileInputStream dan FileOutputStream. Sekarang, kita akan melakukan hal yang sama dengan menggunakan class lainnya yaitu FileReader dan FileWriter.

FileReader inherit dari class InputStreamReader dan merupakan class yang "nyaman" untuk membaca file karakter. Constructor dari class ini mengasumsikan bahwa encoding character default  dan ukuran byte-buffer default adalah hal yang sesuai.

FileWriter inherit dari class OuputStreamReader dan merupakan class yang "nyaman" untuk menulis file karakter. Sama seperti pada FileReader, constructornya juga mengasumsikan  encoding character default  dan ukuran byte-buffer default adalah hal yang sesuai.

Mengenai apakah file tersedia atau dapat dibuat tergantung dari platform yang mendasarinya. Beberapa platform, secara khusus, mengizinkan sebuah file untuk dibuka dan ditulis oleh satu FileWriter ataupun objek lain yang mampu melakukannya pada sekali waktu. Dalam kasus seperti itu maka constructor class ini akan gagal jika file yang terkait sudah dibuka sebelumnya.

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.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class MenyalinFile {
 
 public static void main(String[] args) {
  
  try {
   //myfile.txt adalah file sumber
   //FileReader melalui constructor-nya akan membuka file ini dalam mode pembacaan
   FileReader fileReader = new FileReader("C:/bahasajavacom/myfile.txt");
   
   //copymyfile.txt adalah file tujuan atau target
   //FileWriter melalui constructor-nya akan membuka file ini dalam mode penulisan
   FileWriter fileWriter = new FileWriter("C:/bahasajavacom/copymyfile.txt");
   
   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 = fileReader.read()) != -1 ){
    /*****************************************************
     * Method write(int) dari class FileWriter akan 
     * mengambil nilai int dari method read()
     *****************************************************/
    fileWriter.write(i);
    System.out.print((char) i);
   }
   //Menutup stream dan sebagai good programming practice
   fileReader.close();
   fileWriter.close();
   
    //FileNotFoundException merupakan checked exception dari constructor FileReader dan FileWriter
  } catch (FileNotFoundException e) {
   System.out.println("File tidak ada! " + e);
  } //IOException merupakan checked exception method read(), method write(int c), dan method close()
    catch (IOException e) {
    System.out.println("Terdapat masalah ada I/O" + e);
  }
 } 

}


Contoh output:

menyalin file Java dengan FileReader dan FileWriter

Pada direktori yang sesuai akan terdapat salinan file text.

Share on Facebook
Share on Twitter
Share on Google+

Tempat berbagi pengetahuan untuk bahasa pemrograman Java

Related : Menyalin File Pada Java Menggunakan Class FileReader dan FileWriter