Membuat Operasi Penangan File (File Handling) Java



Macamateri kali ini akan membahas pemrograman java mengenai penangan file atau biasa disebut File Handling.
Dalam class operasi penanganan file ini, terdapat beberapa fungsi yaitu :

  1. Membuat file
  2. Menulis teks kedalam file yang telah dibuat sebelumnya
  3. Membaca isi dari file yang telah dibuat sebelumnya
  4. Mengupdate atau mengubah isi dari file yang telah dibuat sebelumnya
  5. Menghapus file yang telah dibuat sebelumnya
  6. Menghitung jumlah kata dari isi file
  7. Menghitung jumlah huruf / karakter dari isi file
  8. Menyembunyikan file yang telah dibuat sebelumnya
  9. keluar dari program.

Demo Program

Untuk demo program dapat dilihat dalam video berikut :

Source Code 

Untuk nama class, pada source code kali ini menggunakan nama class : operasiPenangananFile , jadi pastikan nama class dan nama file .java sama.
file  : operasiPenangananFile.java

/**
 * @(#)operasiPenangananFile.java
 *
 * @description Program operasi penanganan file buat, tulis, baca, update, hapus, hitung kata, hitung huruf, sembunyikan file.
 * @author Rizal Loa Wanda (Macamateri)
 * @version 1.00 2015/10/18
 */

import java.io.*;
import java.util.*;
public class operasiPenangananFile {
 
 public static void main(String[] args) throws IOException {
        operasiPenangananFile menu = new operasiPenangananFile();
        menu.utama();
    }
    
    //0. Fungsi Menu Utama
    public static void utama() throws IOException {
     Scanner input = new Scanner(System.in);
        operasiPenangananFile menu = new operasiPenangananFile();
        
        System.out.println("Menu Pilihan Penanganan File :");
        System.out.println("==============================");
        System.out.println("1. Buat File         ");
        System.out.println("2. Tulis File        ");
        System.out.println("3. Baca File         ");
        System.out.println("4. Update Isi File   ");
        System.out.println("5. Hapus File        ");
        System.out.println("6. Hitung Kata       ");
        System.out.println("7. Hitung Huruf      ");
        System.out.println("8. Sembunyikan File  ");
        System.out.println("9. Keluar            ");
        System.out.print("Input Pilihan Anda [1-9] = ");
        String n = input.nextLine();
        
        switch (n) {
            case "1": {
                menu.buatFile();
                menu.utama();
                break;
            }
            case "2": {
                menu.tulisFile();
                menu.utama();
                break;
            }
            case "3": {
                menu.bacaFile();
                menu.utama();
                break;
            }
            case "4": {
                menu.updateIsiFile();
                menu.utama();
                break;
            }
            case "5": {
                menu.hapusFile();
                menu.utama();
                break;
            }
            case "6": {
                menu.hitungKata();
                menu.utama();
                break;
            }
            case "7": {
                menu.hitungHuruf();
                menu.utama();
                break;
            }
            case "8": {
                menu.sembunyikanFile();
                menu.utama();
                break;
            }
            case "9": {
                System.out.println("Anda Berhasil Keluar!");
                break;
            }
            default: {
                System.out.println("Pilihan tidak tersedia, silahkan pilih lagi [1 - 9]\n");
                menu.utama();
            }
        }
    }
    
    //1. fungsi membuat file
    public void buatFile() throws IOException {
        Scanner input = new Scanner(System.in);
        System.out.print("Input Nama File Baru dan Ekstensinya = ");
        String namaFile = input.nextLine();
        System.out.println();
        File file = new File(namaFile);
        if (!file.exists()) {
            try {
                Formatter formatter = new Formatter(namaFile);
                System.out.println("File " + namaFile + " Berhasil di Buat\n");
                formatter.close();
            }
            catch (Exception err) {
                System.out.println("Anda Gagal Membuat File " + namaFile + "\n");
                System.out.println("Error : " + err.getMessage() + "\n");
            }
        } else {
            System.out.println("File Sudah Terdapat! Silahkan melakukan Baca, Ganti atau Hapus pada File " + namaFile + ".\n");
        }
    }
    
    //2. fungsi Tulis File
    public void tulisFile() throws IOException {
        Scanner input = new Scanner(System.in);
        System.out.print("Input Nama File dan Ekstensinya = ");
        String namaFile = input.nextLine();
        File file = new File(namaFile);
        if (file.exists()) {
            try {
                FileWriter fileWriter = new FileWriter(namaFile);
                System.out.print("Tuliskan isi ke dalam File = ");
                String isiFile = input.nextLine();
                fileWriter.append((CharSequence)isiFile);
                fileWriter.append((CharSequence)"\n");
                System.out.println();
                System.out.println("File " + namaFile + " Berhasil di Tulis\n");
                fileWriter.close();
            }
            catch (Exception err) {
                System.out.println("Error Menulis File " + namaFile);
                System.out.println("Error : " + err.getMessage() + "\n");
            }
        } else {
            System.out.println("File " + namaFile + " Tidak di Temukan!\n");
        }
    }
    
    //3. fungsi Baca File
    public void bacaFile() throws IOException {
        Scanner input = new Scanner(System.in);
        System.out.print("Input Nama File dan Ekstensinya = ");
        String namaFile = input.nextLine();
        System.out.println();
        File file = new File(namaFile);
        if (file.exists()) {
            try {
                FileReader fr = new FileReader(namaFile);
                BufferedReader bufferedReader = new BufferedReader(fr);
                StringBuffer stringBuffer = new StringBuffer();
                String isiFile = bufferedReader.readLine();
                if (isiFile != null) {
                    System.out.println("Proses Baca Isi File " + namaFile + " =");
                } else if (isiFile == null) {
                    System.out.println("File " + namaFile + " Kosong. Silahkan isi di Pilihan 2.");
                }
                while (isiFile != null) {
                    stringBuffer.append(isiFile);
                    stringBuffer.append("\n");
                    isiFile = bufferedReader.readLine();
                }
                System.out.println(stringBuffer.toString());
                fr.close();
            }
            catch (Exception err) {
                System.out.println("Error Dalam Membaca File " + namaFile);
                System.out.println("Error : " + err.getMessage() + "\n");
            }
        } else {
            System.out.println("File " + namaFile + " Tidak Dapat di temukan!\n");
        }
    }
    
    //4. fungsi Update Isi File
    public void updateIsiFile() throws IOException {
        Scanner input = new Scanner(System.in);
        System.out.print("Input Nama File dan Ekstensi yang ingin di Update = ");
        String namaFile = input.nextLine();
        File file = new File(namaFile);
        if (file.exists()) {
            try {
                FileReader fr = new FileReader(namaFile);
                BufferedReader bufferedReader = new BufferedReader(fr);
                StringBuffer stringBuffer = new StringBuffer();
                String isiFile = bufferedReader.readLine();
                while (isiFile != null) {
                    stringBuffer.append(isiFile);
                    stringBuffer.append("\n");
                    isiFile = bufferedReader.readLine();
                }
                System.out.println("Isi File Sebelum Update  = ");
                System.out.println(stringBuffer.toString());
                fr.close();
                FileWriter fw = new FileWriter(namaFile, true);
                System.out.print("Isi File Tambahan (Update) = ");
                String isiTambahan = input.nextLine();
                fw.append((CharSequence)isiTambahan);
                fw.append((CharSequence)"\n");
                System.out.println();
                System.out.println("File " + namaFile + " Berhasil di Update!\n");
                fw.close();
            }
            catch (Exception err) {
                System.out.println("Error Mengupdate Isi File " + namaFile);
                System.out.println("Error : " + err.getMessage() + "\n");
            }
        } else {
            System.out.println("File " + namaFile + " Tidak Dapat di temukan!\n");
        }
    }
    
    //5. fungsi Hapus File
    public void hapusFile() throws IOException {
     Scanner input = new Scanner(System.in);
     System.out.print("Input Nama File yang ingin di Hapus = ");
     String namaFile = input.nextLine();
     System.out.println();
        File file = new File(namaFile);
        if (file.exists()) {
         try {
          System.out.print("Apakah Anda yakin ingin menghapus File " + namaFile + "? [Y/N] = ");
             String konfirmasi = input.nextLine();
             if (konfirmasi.equalsIgnoreCase("y")) {
              file.delete();
                 System.out.println("File " + namaFile + " Berhasil di Hapus!\n");
             }
             else if (konfirmasi.equalsIgnoreCase("n")) {
              System.out.println("File " + namaFile + " Batal di Hapus!\n");
             }
             else{
              System.out.println("Pilihan Salah. Silahkan coba lagi.\n");
             }
          }
          catch (Exception err) {
             System.out.println("Error menghapus file " + namaFile + "");
           System.out.println("Error : " + err.getMessage() + "\n");
             err.printStackTrace();
          }
        } else {
            System.out.println("File " + namaFile + " Tidak Dapat di temukan!\n");
        }
    }
    
    //6. fungsi hitung kata
    public void hitungKata() throws IOException {
        Scanner input = new Scanner(System.in);
        System.out.print("Input Nama File dan Ekstensi yang ingin di hitung katanya = ");
        String namaFile = input.nextLine();
        System.out.println();
        File file = new File(namaFile);
        if (file.exists()) {
            try {
                String isiFile;
                FileReader fr = new FileReader(namaFile);
                BufferedReader bufferedReader = new BufferedReader(fr);
                int baris = 0;
                int kata = 0;
                while ((isiFile = bufferedReader.readLine()) != null) {
                    String[] arrstring;
                    ++baris;
                    for (String isiFile2 : arrstring = isiFile.split(" ")) {
                        ++kata;
                    }
                }
                System.out.println("Jumlah Kata Pada Isi File " + namaFile + " Adalah  = " + kata + " Kata");
                System.out.println("Jumlah Baris Pada Isi File " + namaFile + " Adalah = " + baris + " Baris\n");
                
                fr.close();
            }
            catch (Exception err) {
                System.out.println("Error menghitung kata file " + namaFile);
                System.out.println("Error : " + err.getMessage() + "\n");
            }
        } else {
            System.out.println("File " + namaFile + " Tidak Dapat di temukan!\n");
        }
    }
    
    //7. fungsi Hitung Huruf

    public void hitungHuruf() throws IOException {
     int JUMLAH_KARAKTER = 256;
     int[] total_per_karakter = new int[JUMLAH_KARAKTER];
        Scanner input = new Scanner(System.in);
        System.out.print("Input Nama File dan Ekstensi yang ingin di hitung hurufnya = ");
        String namaFile = input.nextLine();
        File file = new File(namaFile);
        if (file.exists()) {
            try {
                String isiFile;
                String isiFile2 = "";
                FileReader fr = new FileReader(namaFile);
                BufferedReader bufferedReader = new BufferedReader(fr);
    
                while ((isiFile = bufferedReader.readLine()) != null) {
                    isiFile2 = isiFile2 + isiFile;
                }
                isiFile2 = isiFile2.toLowerCase();
                for (int i=0; i<JUMLAH_KARAKTER; i++) {
              total_per_karakter[i] = 0;
          }
          int isiFile2_len = isiFile2.length();
          for (int i=0; i<isiFile2_len; i++) {
              total_per_karakter[(int )isiFile2.charAt(i)]++;
          }
          
          System.out.println();
          for (int i=0; i<JUMLAH_KARAKTER; i++) {
              if (total_per_karakter[i] > 0) {
                  if (((char)i >= 'a' && (char)i <= 'z')) {
                      System.out.println("Jumlah huruf " + (char) i + " ada = " + total_per_karakter[i] + " buah");
                  } else if ((char)i >= '0' && (char)i <= '9') {
                      System.out.println("Jumlah angka " + (char) i + " ada = " + total_per_karakter[i] + " buah");
                  } else if ((char) i == ' ') {
                      System.out.println("Jumlah Spasi ada   = " + total_per_karakter[i] + " buah");
                  } else {
                      System.out.println("Jumlah karakter " + (char) i + " ada = " + total_per_karakter[i] + " buah");
                  }
              }
          }
                System.out.println();
                fr.close();
            }
            catch (Exception err) {
                System.out.println("Error menghitung huruf file " + namaFile);
                System.out.println("Error : " + err.getMessage() + "\n");
            }
        } else {
            System.out.println("File " + namaFile + " Tidak Dapat di temukan!\n");
        }
    }
    
    //8. fungsi menyembunyikan file (This Is MAGIC =D )
    public void sembunyikanFile() throws IOException {
     Scanner input = new Scanner(System.in);
     System.out.print("Input Nama File dan Ekstensinya yang ingin di Sembunyikan = ");
     String namaFile = input.nextLine();
     System.out.println();
        File file = new File(namaFile);
        if (file.exists()) {
         try {
          if(file.isHidden()){
           System.out.print("File "+namaFile+" sudah tersembunyi, Unhide? [Y/N] = ");
           String konfirmasi = input.nextLine();
           if(konfirmasi.equalsIgnoreCase("y")){
            if(System.getProperty("os.name").contains("Windows")){
             Process p = Runtime.getRuntime().exec("attrib -h "+namaFile);
             p.waitFor();
             System.out.println("Berhasil menampilkan (unhide) File " +namaFile);
         }
         else{
             System.out.println("Maaf untuk OS lain selain Windows belum support");
         }
           }
           else {
            System.out.println("Batal Menammpilkan (unhide) File " +namaFile);
           }
           
          }
          else {
           if(System.getProperty("os.name").contains("Windows")){
            Process p = Runtime.getRuntime().exec("attrib +h "+namaFile);
            p.waitFor();
            System.out.println("Berhasil Menyembunyikan File " +namaFile);
        }
        else{
         System.out.println("Maaf untuk OS lain selain Windows belum support");
        }
          }
          System.out.println();
          }
          catch (Exception err) {
             System.out.println("Error menyembunyikan file " + namaFile + "");
           System.out.println("Error : " + err.getMessage() + "\n");
             err.printStackTrace();
          }
        } else {
            System.out.println("File " + namaFile + " Tidak Dapat di temukan!\n");
        }
    }
}
Share on Google Plus
Seorang blogger yang juga web designer dan web developer. Mempunyai hobi menggonta-ganti hobi tapi tidak jauh dari hobi mengenai TI/Web/Robotic/Internet. 
[ f ] : /riloaw   [ t ] : @Riloaw

0 komentar :

Posting Komentar

Tinggalkan Komentar Yang Baik.