Belajar Pemrograman Java Dari Dasar

Menambahkan Konten File Dengan FileWriter

java.io.FileWriter merupakan class yang memberikan kenyamanan dan membuat menjadi mungkin untuk menulis karakter pada suatu file.

FileWriter ini bekerja seperti FileOutputStream. Tapi perbedaannya adalah FileOutputStream berbasis byte, sedangkan FileWriter berbasis karakter. Secara sederhananya FileWriter ini dimaksudkan untuk menulis teks. Satu karakter mungkin saja sesuai dengan satu byte atau bisa lebih, tergantung pada skema pengkodean dari karakter yang digunakan.


Menambahkan Konten File Dengan FileWriter


Pada beberapa platform, khususnya, memungkinkan file dibuka untuk ditulis oleh hanya satu FileWriter (atau objek penulisan file lainnya) pada satu waktu. Dalam situasi tersebut, konstruktor di kelas ini akan gagal jika file yang terlibat sudah terbuka.

Menambahkan Konten (Append) VS Overwrite File

Ketika anda membuat objek FileWriter, anda dapat memutuskan apakah anda ingin meng-overwrite (menimpa) file yang ada dengan nama yang sama, atau apakah anda ingin menambahkan (append) ke file yang sudah ada. Anda memutuskan hal ini dengan cara memilih konstruktor FileWriter yang digunakan.

Konstruktor FileWriter berikut ini hanya mengambil satu parameter, nama file, dan akan menimpa file yang ada:

FileWriter(File file)

Sedangkan untuk menambahkan konten pada file yang sudah ada tanpa menimpanya anda dapat menggunakan konstruktor:

FileWriter(File file, boolean append)

Contoh:

Sebuah file dengan nama myfile.txt terdapat di path C:\\bahasajavacom\\.

Isi dari file tersebut seperti ini:




Kemudian file tersebut akan ditambahkan konten, dengan program seperti di bawah ini:

package com.bahasajava.io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class MenambahkanKontenFile {
    
    private static final String NAMA_FILE = 
            "C:\\bahasajavacom\\myfile.txt";
    
    public static void main(String[] args) {
        
            BufferedWriter bufferedWriter = null;
            FileWriter fileWriter = null;
            MenambahkanKontenFile.membacaFile();
            
        try {    
            String kontenFile = ":Belajar Bahasa Pemrograman Java Itu Menyenangkan!";
            
            File file = new File(NAMA_FILE);
            
            //Jika file tidak ada, maka file akan dibuat
            if(!file.exists()){
                file.createNewFile();
            }else{
                 System.out.println("File telah ada sebelumnya dan "
                         + "kontennya akan ditambah");
                 
            }
               
            //Contructor FileWriter yang akan menambahkan konnten file
            fileWriter = new FileWriter(file.getAbsoluteFile(), true);
            bufferedWriter = new BufferedWriter(fileWriter);
            
            bufferedWriter.write(kontenFile);
            System.out.println("Konten telah selesai ditambahkan");
        } catch (IOException ex) {
            ex.printStackTrace();
            
        }finally{
            try{
                if(bufferedWriter != null){
                    bufferedWriter.close();
                }
                if(fileWriter != null){
                    fileWriter.close();
                }
                
                MenambahkanKontenFile.membacaFile();
                
            }catch (IOException ex){
                ex.printStackTrace();
            }  
        }
    }
    
    
    //Method untuk membaca file
    static void membacaFile(){
        System.out.println("Sekarang konten myfile.txt adalah: ");
        try {
             
            BufferedReader bufferedReader = 
                    new BufferedReader(new FileReader(NAMA_FILE));
             
            String baris;
            //Ketika baris tidak null maka baris tersebut akan dicetak
            
            while((baris = bufferedReader.readLine()) != null){
                System.out.println(baris);
            }
            bufferedReader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Output:

Sekarang konten myfile.txt adalah:
abcde
fghij
klmno
pqrst
uvwxy
z
File telah ada sebelumnya dan kontennya akan ditambah
Konten telah selesai ditambahkan
Sekarang konten myfile.txt adalah:
abcde
fghij
klmno
pqrst
uvwxy
z:Belajar Bahasa Pemrograman Java Itu Menyenangkan!

Hasil setelah konten file ditambahkan


Share on Facebook
Share on Twitter
Share on Google+

Artikel Menarik Lainnya :