Bahasa Java

Belajar Pemrograman Java Dari Dasar

Cara Menampilkan List File Dari Suatu Direktori Dengan Java

Halo gan, pada kesempatan kali ini akan dibahas cara untuk mengetahui list file dari suatu direktori. Untuk melakukan ini, anda bisa menggunakan method dari class File, yaitu:

public File[] listFiles()

Method ini akan mengembalikan array dari pathname abstrak yang menunjukkan file dalam direktori yang ditandai dengan pathname abstrak ini. Jika pathname abstrak ini tidak menunjukkan direktori, maka method ini akan mengembalikan null.


Menampilkan isi direktori dengan program Java

Sebenarnya apa itu pathname abstrak?

Jika anda membaca Java API kemudian pada bagian dokumentasi mengenai class File yang terdapat pada package java.io maka pada beberapa method-methodnya ada istilah pathname abstrak (abstract pathname). Ini akan membingungkan awalnya, tapi penting juga untuk diketahui sebenarnya.
Pathname abstrak adalah objek dari class java.io.File dan string pathname adalah objek java.lang.String. Keduanya mereferensikan file yang sama yang terdapat pada disk.

Contoh program menampilkan list file dari suatu direktori

Misalkan pada direktori C:\bahasajavacom\, terdapat file:
  • myfile.docx (Word)
  • myfile.txt (Text)
  • myfile.xlxs (Excel)
Maka untuk menampilkan file-file tersebut pada konsol:

package com.bahasajava.io;

import java.io.File;
import java.io.IOException;

public class MenampilkanFileDirektori {
    
    private static final String DIR = ("C:\\bahasajavacom");
    
    public static void main(String[] args) {
       
       File file = new File(DIR);
        
       File [] myFiles = file.listFiles();
       System.out.println("List file dari direktori " + DIR + " adalah:"); 
       //foreach loop
        for(File files : myFiles){
            try {
                System.out.println(files.getCanonicalPath());
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }             
}

Output:
List file dari direktori C:\bahasajavacom adalah:
C:\bahasajavacom\myfile.docx
C:\bahasajavacom\myfile.txt
C:\bahasajavacom\myfile.xlsx

Demikianlah cara menamilkan isi direktori dengan mengguanakan program Java. Semoga contoh yang simpel ini bisa lebih mudah dipahami.

Inilah 26 Situs Tempat Belajar Pemrograman Interaktif Dari Nol Untuk Pemula

Situs Tempat Belajar Pemrograman Interaktif Dari Nol Untuk Pemula - Memiliki skill dalam pemrograman merupakan  aspek terpenting dalam membangun situs web apa pun. Para desainer dan juga web developer perlu belajar memprogram dan membuat kode ketika mempelajari pemrograman untuk membangun situs web. Selain belajar reguler, banyak juga situs web interaktif tertentu yang tersedia di internet.  Ini tentunya akan membantu anda  untuk belajar dan memperoleh lebih banyak informasi dan pengetahuan di luar penddikan reguler Anda.

tempat belajar pemrograman interaktif dari nol untuk pemula


Sebagai orang yang memiliki tekad kuat untuk belajar, maka anda dianjurkan untuk mengunjungi situs web tersebut. Tentunya jika anda tertarik ingin mempelajari lebih lanjut tentang bahasa pemrograman. Artikel ini akan memberi anda mengenai beberapa informasi dasar dari situs-situs web interaktif yang diharapkan bisa menolong anda untuk terus mengasah kemampuan yang ada pada pemrograman. Melalui situs ini, anda juga dapat memilih jenis banyak bahasa pemrograman terbaik yang anda butuhkan dan lebih banyak lagi ilmu untuk anda.

Daftar Situs Terbaik Untuk Belajar Pemrograman Secara Interaktif

Berikut ini adalah daftarnya:

1. Codecademy

Apakah anda merasa antusias ketika belajar koding untuk pemrograman? Maka Codecademy adalah yang terbaik yang dapat anda pilih. Situs web ini ditampilkan sebagai salah satu dari 50 situs teratas di Time pada tahun 2013. Dengan sesi pembelajaran yang interaktif memang dapat membuat siapa pun tertarik belajar bahasa pemrograman selama mereka merasa memiliki kemauan.

2. CodeCombat

Ingin bermain game sambil belajar koding? Disinilah tempatnya. CodeCombat adalah salah satu situs web  tempat para anda dapat belajar koding. Hal yang menjadi daya tarik tersendiri adalah anda tetap belajar pemrograman sambil memainkan game strategi mutiplayer.

Anda dapat bersenang-senang dan pada saat yang sama belajar coding dengan berbagai bahasa pemrograman seperti Python dan JavaScript dari situs web interaktif ini. Tujuan utama dari pendiri situs ini adalah untuk membuat pengguna senang saat belajar, dengan demikian pengetahuan yang diperoleh menjadi lebih maksimal karena mereka menikmatinya.

3. TeamTreehouse

Apakah anda saat ini sedang belajar mengenai desain web? Maka TeamTreehouse bisa menjadi pilihan yang baik. Anda dapat memelajari desain dan pengembangan web melalui situs web interaktif ini. Situs ini juga memiliki tutorial video untuk para siswanya dan fokus untuk membantu mereka belajar tentang HTML dan Ruby. Selanjutnya anda dapat menonton video-video dan mempeljarinya. Kemudian secara bertahap anda dapat mengikuti latihan untuk menguji pengetahuan dan mengukur sejauh mana anda telah belajar dari sesi tersebut.

4. CodePad

CodePad adalah compiler/interpreter online. Ya, di sini anda dapat memelajari dan menjalankan berbagai bahasa pemrograman. Diantaranya adalah:
  • C
  • C++
  • D
  • Haskell
  • Lua
  • OCaml
  • PHP
  • Perl
  • Plain Text
  • Python
  • Ruby
  • Scheme
  • Tcl

5. CodingBat

Tertarik untuk mempelajari Java atau Python? Disinilah tempatnya. CodingBat ini ibarat taman bermain untuk pengujian kode secara online dengan banyak tutorial yang bermanfaat. Selain itu, juga terdapat video untuk mempelajari kode bahasa pemrograman Java dan Python. Situs gratis ini dapat anda jadikan referensi untuk mengembangkan skill pemrograman. Di situ anda dapat mengetikkan kode secara online melalui editor teks kemudian tinggal klik Run untuk mengkompilasi kode secara online.

6. Repl.it

Repl.it  menyediakan lingkungan online untuk mempelajari berbagai bahasa pemrograman dan juga memiliki editor kode online. Selain itu, situs ini memiliki mesin penerjemah yang ditulis dalam bahasa Java Script untuk lebih dari 15 bahasa pemrograman dan interpreter yang berjalan di komputer pengguna.

7. Ideone

Ideone merupakan alat untuk debugging dan juga compiler online yang dapat melakukan kompilasi serta mengeksekusi secara online untuk lebih dari 60 bahasa pemrograman. Beberapa bahasa pemrograman itu seperti Java, C #, C, Pascal, dan sebagainya. Di situs ini, anda perlu memilih bahasa pemrograman lalu mengetikkan kode pada editor teks. Untuk menjalankan program, anda tinggal menekan tombol Run. Mudah bukan?.

8. Codeschool

Codeschool akan mengajarkan berbagai teknologi web di browser web melalui gips layar, juga terdapat tantangan pengkodean dan pelajaran video untuk bahasa pemrograman dengan komunitas besar seperti Java Script, Ruby, HTML / CSS dan C.

9. WiBit.Net

WiBit.Net merupakan website tutorial berupa video yang menyediakan kursus pemrograman komputer secara gratis dalam bahasa pemrograman seperti C ++, C dan Obj-C dan juga Java. Yang menarik di sini adalah  tutorial tersebut menyediakan sumber daya untuk belajar bahasa pemrograman dengan cepat.

10. RailsForZombies.org

Bagi anda yang sedang belajar pemrograman Ruby, RailsForZombies.org ini bisa menjadi tempat belajar yang juga bisa anda pilih. Setelah update dilakukan pada situs ini  maka memungkinkan para pelajar untuk mempelajari Ruby on Rails secara langsung di browser tanpa pengaturan tambahan. Website interaktif ini juga memastikaan kesenangan dalam metode belajar karena tidak perlu khawatir tentang masalah konfigurasi. Disamping itu terdapat juga berbagai video tutorial dengan latihan sebagai sumber daya yang bagus untuk belajar.

11. CodeLearn

CodeLearn  menjadikan proses belajar Ruby on Rails dengan mudah. Yaitu dengan membuat aplikasi langsung di browser. Situs  ini menawarkan server virtual yang bebas dari kerumitan bersama dengan tutorial-tutorial luar biasa yang memudahkan untuk pembelajaran Rails. Pengguna tidak memerlukan profesional yang berpengalaman untuk menggunakan tutorial ini.

12. LearnPython

LearnPython merupakan tempat tutorial belajar Python interaktif secara gratis. Tutorial Python ini dikembangkan untuk menawarkan pola belajar interaktif kepada para orang yang ingin belajar pemrograman Python. Tutorial-tutoriaal ini berisi materi kursus dasar dan awal sehingga mampu untuk memfasilitasi pemula dan profesional yang berpengalaman dalam teknik pemrograman Python.

13. Pyschools

Pyschools merupakan website yang memiliki banyak sekali tutorial dasar Python dan juga latihan-latihan secara interaktif dengan tujuan untuk melatih keterampilan pemrograman Python anda.

14. Python Anywhere

Seasua dengan namanya, Python Anywhere  menyediakan lingkungan berbasis cloud bagi para pengembang Python untuk mengembangkan dan menyebarkan aplikasi Python melalui teknologi cloud.

15. Trypython.jcubic

Trypython.jcubic adalah interpreter online interaktif untuk bahasa program Python, dengan AJAX  dan menggunakan plug-in yang disebut JQuery Terminal Emulator. Seperti Java, Python juga merupakan bahasa pemrograman berorientasi objek yang dapat anda coba langsung melalui browser web.

16. Trypython.org

Trypython.org adalah interpreter interaktif untuk bahasa pemrograman Python langsung pada browser web. Di sini juga tersedia tutorial online untuk Python programming secara interaktif yang dapat anda jalankan di jendela browser.

17. Learn-C.org

Learn-C.org berisi tutorial pembelajaran C interaktif dan gratis untuk orang-orang yang ingin belajar pemrograman C. Website ini menawarkan pembelajaran untuk tingkat pemula dan lanjut mengenai pemrograman C. Dengan demikian terlepas apakah mereka pemula atau profesional tetap dapat belajar di sini. Di samping itu, belajar melalui situs web ini tidak akan membutuhkan apa pun untuk diunduh.

18. LearnJavaOnline

LearnJavaOnline adalah situs tutorial belajar Java interaktif gratis untuk semua kalangan. Tidak masalah apakah anda seorang profesional atau pemula di pemrograman Java. Tujuan dari dari situs web ini adalah untuk menawarkan pembelajaran kepada semua orang yang ingin belajar Java. Tutorial pada situs ini berisi tutorial tingkat dasar dan lanjutan. Jika anda memutuskan untuk belajar Java mungkin ada ingin mengetahui alasan lainnya kenapa mempelajari Java.

19. Try.jQuery

jQuery adalah salah satu kerangka kerja Javascript yang paling populer. Try.jQuery adalah situs web interaktif yang berisi kumpulan video, tantangan interaktif yang tersedia dalam bentuk konsol dan juga memungkinkan anda untuk mempraktikkan kode di browser anda sendiri. Anda hanya memerlukan waktu 3 jam untuk menyelesaikan seluruh aktivitas. Situs web saat ini menggunakan jQuery 2.0 untuk fungsinya.

20. SQLZoo

SQLZoo merupakan situs web yang menawarkan tutorial secara langkah demi langkah dengan penerjemah langsung. Anda dapat belajar SQL Server, Oracle, MySQL, DB2, dan PostgreSQL melalui pembelajaran interaktif ini. Website ini juga  berisi berbagai macam materi tutorial yang dirancang untuk pemula dan para profesional tingkat lanjut.

21. Try.Github.io

Try.Github.io memungkinkan Anda belajar Git dalam 15 menit. Situs interaktif ini memiliki jendela untuk memasukkan kode yang disematkan di peramban itu sendiri. Dengan demikian memungkinkan para pembelajar dan pengguna untuk mencoba kode mereka secara langsung di Octobox dan melihat hasilnya.

22. Coder Byte

Coder byte berisi tantangan pemrograman danjuga  kompetisi website. Situs ini juga menyediakan  forum diskusi program terkait untuk meminta solusi mengenai masalah pemrograman.

23. C++ Interactive Exercises

C++ Interactive Exercises berisi latihan-latihan yang memberikan pengantar bahasa Pemrograman C ++ beserta dengan contoh programnya. Dikarenakan ini berbasis web maka anda dapat menjalankan program dengan mengklik tombol "Start Exercise" di situs web itu sendiri.

24. CSS3 Please

CSS3 Please adalah alat berbasis web online  yang menghasilkan aturan lintas browser untuk bahasa CSS. Setiap kali anda membuat perubahan dalam aturan di sisi kiri halaman web, maka ada perubahan yang terjadi secara otomatis dalam elemen.

25. W3Schools

W3Schools adalah situs web informasi untuk pengembang web dan berisi berbagai referensi serta tutorial untuk CSS, HTML, JQuery, PHP, Java Script, dan SQL. Website ini mendapatkan namanya dari World Wide Web dan memiliki alat editor online.

26. Golang

Golang adalah situs tempat mempelajari bahasa Pemrograman Go. Anda dapat menulis kode  di editor kode online dan menjalankan program secara online. Anda juga dapat mengunduh kompiler Go dari situs ini.

Itulah beberapa situs tempat belajar pemrograman interaktif dari nol untuk pemula. Semoga bisa membantu anda yang sedang belajar koding.

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


Kumpulan Shorcuts Pada IDE Netbeans Untuk Memudahkan Penulisan Koding Java

Hallo gan, bagi anda yang belajar Java atau memang menggunakan Netbeans untuk koding Java bisa menggunakan beberapa shortcut di bawah ini untuk mempercepat proses penulisan kodenya.



Oke deh, langsung saja. Berikut ini adalah tabel dari shortcuts untuk Netbeans 8 yang mungkin bisa membantu anda dalam belajar program Java.

Shortcuts Fungsi General
Ctrl+F3 Mencari kata pada insert point
F3/Shift+F3 Temukan file berikutnya / sebelumnya
Ctrl+F/H Menemukan/replace file
Alt+F7 Menemukan penggunaan
Ctrl+Shift+F/H Menemukan/replace dalam projects
Alt+Shift+U Menemukan hasil penggunaan
Alt+Shift+H Mematikan highlight hasil pencarian
Ctrl+R Rename
Ctrl+U, kemudian U Mengubah seleksi ke uppercase
Ctrl+U, kemudian L Mengubah seleksi ke lowercase
Ctrl+U, kemudian S Mengganti (toogle) kasus seleksi
Ctrl+Shift+V Paste diformat
Ctrl+Shift+D Menampilkan history clipboard
Ctrl+I Beralih ke field pencarian cepat
Alt+Shift+L Menyalin file path
Ctrl+O/Alt+Shift+O Menuju ke type/file
Ctrl+Shift+T Menuju ke JUnit test
Ctrl+Shift+B Menuju ke sumber (source)
Ctrl+B Menuju ke deklarasi
Ctrl+G Menuju ke baris
Ctrl+Shift+M Alihkan tambah/hapus bookmark
Ctrl+Shift+./, Bookmark berikutnya/sebelumnya
Ctrl+./, Penggunaan berikutnya/sebelumnya/compile error
Alt+Shift+./, Memilih element berikutnya/selanjutnya
Ctrl+Shift+1/2/3 Memilih dalam Projects/Files/Favorites
Ctrl+[ Memindahkan tanda sisipan ke braket yang cocok
Ctrl+K/Ctrl+Shift+K Kecocokan kata selanjutnya/berikutnya
Alt+Left Arrow/Alt+Right Arrow/Ctrl+Q Menuju backward/forward ke editan terakhir
Alt+Up Arrow/Down Arrow Menandai kejadian berikutnya/sebelumnya

Shortcuts Fungsi Coding
Alt+Insert Meng-generate kode
Ctrl+Shift+I Perbaiki semua import class
Alt+Shift+I Perbaiki import class yang dipilih
Alt+Shift+F Pilihan format (Indent)
Alt+Shift+Arrow Keys Geser garis ke kiri / kanan / atas / bawah
Ctrl+Shift+R Seleksi Rectangular (Toggle)
Ctrl+Shift+Arrow Up/Arrow Down Salin garis atas / bawah
Ctrl/Alt+F12 Periksa anggota / hierarki
Ctrl+Shift+C/Ctrl+/ Tambahkan / hapus baris komentar
Ctrl+Shift+C/Ctrl+/ Hapus baris saat ini

Ketik Shortcuts
lalu tekan Tab
Editor Kode Java
psvm public static void main
En Enumeration
Ex Exception
Psf public static final
Psfb public static final boolean
Psfi public static final int
Psfs public static final String
St String
ab abstract
as assert true
br break
bo boolean
ca catch
cl class
cn continue
db double
df default
eq equal
ex extends
pu public
pr private
pe protected
th throws
fy finally
im implements
ie interface
tw throw
ir import
le length
sout System.out.println()
soutv System.out.println("obj"+obj)
wh while
vo volatile
iof instanceof
fi final
fl float
fa false
sh short
psf private static final
psfb private static final boolean
psfi private static final int
psfs private static final String
pst printStackTrace()
bcom /**/

Shortcuts Compiling, Testing, Running
F9 Compile package/ file
F11 Build main project
Shift+F11 Membersihkan dan build main project
Ctrl+Q Set permintaan parameter
Ctrl+Shift+U Membuat Unit test
Ctrl+F6/Alt+F6 Run Unit test pada file/project
F6/Shift+F6 Run main project/file

Sumber selengkapnya di:
Netbeans user guide

Menggunakan Class File Untuk Mengatur File Permission (Hak Akses)

Apa itu file permission?


File permission itu merupakan aturan hak akses yang ditujukan bagi pengguna terhadap suatu file, apakah dapat untuk menjalankan (memperlakukan), membaca, atau menulis pada file tersebut. Dalam hal perlindungan dan keamanan data, maka ini menjadi hal yang sangat penting sehingga hanya user yang memiliki otoritas saja yang diberikan akses.


mengatur akses file pada Java


Method Pada Class File Untuk Mengatur Hak Akses

Berikut ini adalah method penting pada class java.io.File untuk mengatur file permission:

Method Penjelasan
boolean setExecutable(boolean executable) Method ini menetapkan izin untuk menjalankan
file/direktori hanya untuk pemilik saja
boolean setExecutable(boolean executable, boolean ownerOnly) Method ini menetapkan izin untuk menjalankan
file/direktori untuk pemilik atau siapa saja.
Ini tergantung dari argumen kedua.
Jika true maka hak menjalankan hanya untuk pemilik saja dan jika false maka eksekusi pada file bisa dilakukan oleh siapa saja. 
boolean setReadable(boolean readable) Method ini menetapkan izin untuk membaca
file/direktori hanya untuk pemilik saja
boolean setReadable(boolean readable, boolean ownerOnly) Method ini menetapkan izin untuk membaca
file/direktori oleh pemilik atau siapa saja.
Ini tergantung dari argumen kedua.
Jika true maka hak membaca hanya untuk pemilik saja dan jika false maka membaca file bisa dilakukan oleh siapa saja
boolean setWritable(boolean writable) Method ini menetapkan izin untuk menulis
file/direktori hanya untuk pemilik saja
boolean setWritable(boolean writable, boolean ownerOnly) Method ini menetapkan izin untuk menulis
file/direktori untuk pemilik atau siapa saja.
Ini tergantung dari argumen kedua.
Jika true maka hak menulis hanya untuk pemilik saja dan jika false maka menulis pada file bisa dilakukan oleh siapa saja.


Untuk mempermudah, tabel berikut ini akan membantu anda untuk memahaminya:

Hak Akses / Izin Pemilik File Pemilik File / Siapa Saja
Menjalankan setExecutable(boolean executable) setExecutable(boolean executable, boolean ownerOnly)
Membaca setReadable(boolean readable) setReadable(boolean readable, boolean ownerOnly)
Menulis setWritable(boolean writable) setWritable(boolean writable, boolean ownerOnly)

Contoh program mengatur hak akses menjalankan file


package com.bahasajava.io;

import java.io.File;

public class MenjalankanFile {
    public static void main(String[] args)
    {
        File file = new File("C:\\bahasajavacom\\myfile.txt");
         
        if(file.exists())
        {
            //Mengatur agar file hanya dapat dijalankan oleh pemilik saja
            boolean hasil = file.setExecutable(true);
             
            System.out.println("Apakah izin menjalankan file untuk "
                    + "pemilik berhasil? " + hasil);
        }
        else
        {
            System.out.println("File tidak ada!");
        }
         
        if(file.exists())
        {
            //Mengatur agar file dapat dijalankan oleh siapa saja
            boolean hasil = file.setExecutable(true, false);
             
            System.out.println("Apakah izin menjalankan file untuk "
                    + "siapa saja berhasil? " + hasil);
        }
        else
        {
            System.out.println("File tidak ada!");
        }
    }
}

Output:
Apakah izin menjalankan file untuk pemilik berhasil? true
Apakah izin menjalankan file untuk siapa saja berhasil? true

Contoh program mengatur hak akses membaca file


package com.bahasajava.io;

import java.io.File;

public class Membaca_File {
    public static void main(String[] args)
    {
        File file = new File("C:\\bahasajavacom\\myfile.txt");
         
        if(file.exists())
        {
            //Mengatur agar file hanya dapat dibaca oleh pemilik saja
            boolean hasil = file.setReadable(true);
             
            System.out.println("Apakah izin membaca file untuk "
                    + "pemilik berhasil? " + hasil);
        }
        else
        {
            System.out.println("File tidak ada!");
        }
         
        if(file.exists())
        {
            //Mengatur agar file dapat dibaca oleh siapa saja
            boolean hasil = file.setReadable(true, false);
             
            System.out.println("Apakah izin membaca file untuk "
                    + "siapa saja berhasil? " + hasil);
        }
        else
        {
            System.out.println("File tidak ada!");
        }
    }
}

Output:
Apakah izin membaca file untuk pemilik berhasil? true
Apakah izin membaca file untuk siapa saja berhasil? true

Contoh program mengatur hak akses menulis file


package com.bahasajava.io;

import java.io.File;

public class MenulisFile {
    public static void main(String[] args)
    {
        File file = new File("C:\\bahasajavacom\\myfile.txt");
         
        if(file.exists())
        {
            //Mengatur agar penulisan pada file dapat dilakukan oleh pemilik saja
            boolean hasil = file.setWritable(true);
             
            System.out.println("Apakah izin menulis file untuk "
                    + "pemilik berhasil? " + hasil);
        }
        else
        {
            System.out.println("File tidak ada!");
        }
         
        if(file.exists())
        {
            //Mengatur agar file dapat ditulis oleh siapa saja
            boolean hasil = file.setWritable(true, false);
             
            System.out.println("Apakah izin menulis file untuk "
                    + "siapa saja berhasil? " + hasil);
        }
        else
        {
            System.out.println("File tidak ada!");
        }
    }
}

Output:
Apakah izin menulis file untuk pemilik berhasil? true Apakah izin menulis file untuk siapa saja berhasil? true

Demikianlah cara sederhana mengatur atau setting file permission pada file dengan program Java. Anda juga dapat mencobanya pada IDE Java seperti Netbeans atau Eclipse dengan mudah.

Membaca File Menggunakan BufferedReader Dalam Program Java

Pada kesempatan ini kita akan membahas contoh yang lebih kompleks tentang penggunaan class BufferedReader. Pada contoh sebelumnya, anda telah menggunakan InputStreamReader sebagai argumen konstruktor, sedangkan kali ini anda akan menggunakan FileReader. Tujuannya adalah untuk membaca isi file dan menampilkannya ke konsol.

Meskipun anda bisa saja memakai class Scanner untuk membaca file, namun menggunakan class BufferedReader memiliki beberapa manfaat. Ok, selanjutnya kita lihat contoh di bawah ini:

  1. Misalkan anda memiliki sebuah file.txt dengan nama myfile, yang berisi karakter seperti di bawah ini:
    membaca file java

    File tersebut terletak pada direktori tertentu. Pada contoh di sini tempat menyimpannya adalah C:/bahasajavacom/myfile.


  2. Berikut ini adalah contoh programnya:
    package com.bahasajava.io;
    
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    
    
    public class MembacaFile {
        private static final String NAMA_FILE=("C:\\bahasajavacom\\myfile.txt");
        
        public static void main (String[] args){
            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);
                }
                
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
Contoh output:

membaca file dengan BufferedReader

Cara Membuat File Path Pada Program Java

Apa itu path?

Path merupakan bentuk umum dari nama file atau direktori yang menentukan lokasi unik dalam sistem file. Sebuah path akan merujuk ke lokasi sistem file dengan mengikuti hierarki dari pohon direktori (directory tree).  Hirarki ini dinyatakan berupa string karakter di mana komponen path dipisahkan oleh karakter pembatas atau delimiter yang mewakili setiap direktori.

Delimiter yang paling sering digunakan adalah garis miring ("/"),  backslash ("\"), atau titik dua (":"). Meskipun beberapa sistem operasi mungkin menggunakan delimiter yang berbeda.

Path digunakan secara luas dalam ilmu komputer untuk mewakili hubungan direktori / file yang umum dalam sistem operasi modern. Path juga sangat penting dalam pembangunan Uniform Resource Locators (URLs). Path ini dapat diwakili dengan tipe absolut ataupun relatif.

Pada kesempatan kali ini akan dibahas mengenai 2 cara membuat file path, yaitu:
  • Dengan menggunakan File.separator atau System.getProperty("file.separator")
  • Dengan menggunakan File file = new File(direktoriKerja, namaFile);
Contoh 1:

package com.bahasajava.io;
 
import java.io.File;
import java.io.IOException;
 
public class ContohFilepath1 {
  
 public static void main(String[] args) {
   
  String namaFile = "filebaru.txt";
   
  //user.dir merupakan direktori kerja ketika proses dimulai
  String direktoriKerja = System.getProperty("user.dir");
   
  String filePathAbsolut = "";
   
  //Separator adalah karakter pemisah nama standar yang bergantung pada sistem, 
  //dan direpresentasikan sebagai string untuk kenyamanan.
  filePathAbsolut = direktoriKerja + File.separator + namaFile;
   
  System.out.println("Nama final dari file path adalah: " + filePathAbsolut);
   
  File file = new File(filePathAbsolut);
   
  try {
   if (file.createNewFile()) {
    System.out.println("File sudah dibuat!");
   } else {
    System.out.println("File sudah ada!");
   }
  } catch (IOException e) {
    
   e.printStackTrace();
  }
 } 
 
}

Contoh output:

file path Java


Contoh 2:

package com.bahasajava.io;

import java.io.File;
import java.io.IOException;

public class ContohFilepath2 {
 
public static void main(String[] args) {
  
  String namaFile = "filebaru.txt";
  
  //user.dir merupakan direktori kerja ketika proses dimulai
  String direktoriKerja = System.getProperty("user.dir");
  
  File file = new File (direktoriKerja, namaFile);
  
  //file.getAbsolutePath akan mengembalikan nama path absolut dalam string dari nama path abstrak
  System.out.println("Nama final dari file path adalah: " + file.getAbsolutePath());
  
  try {
   if (file.createNewFile()) {
    System.out.println("File sudah dibuat!");
   } else {
    System.out.println("File sudah ada!");
   }
  } catch (IOException e) {
   
   e.printStackTrace();
  }
 } 


}

Contoh 2 juga akan menghasilkan output yang serupa.

Cara Membuat File Pada Java

Untuk membuat file anda bisa menggunakan class java.io.File. Class File ini memiliki  4 constructor, yaitu:
  • File(File parent, String child)
  • File(String pathname)
  • File(String parent, String child)
  • File(URI uri)
Kali ini anda akan menggunakan constructor File(String pathname) yang akan digunakan untuk membuat file text dari string path file tersebut.

Method yang dipakai untuk memeriksa apakah file sudah dibuat adalah File.createNewFile() yang akan mengembalikan nilai boolean:
  • true jika file berhasil dibuat
  • false jika file sudah ada
Method ini akan membuat file kosong yang baru hanya jika nama file ini belum ada pada path direktori yang akan dijadikan tempat menyimpan file tersebut.  Selain itu, method ini juga melemparkan checked exception yaitu IOException.

Contoh:

package com.bahasajava.io;

import java.io.File;
import java.io.IOException;

public class MembuatFile 
{
    public static void main( String[] args )
    { 
     try {
       
           //Membuat file teks dengan nama filebaru yang berada di 
           //direktori C di dalam folder bahasajavacom
       File file = new File("C:\\bahasajavacom\\filebaru.txt");
       
       if (file.createNewFile()){
         System.out.println("File sudah dibuat!");
       }else{
         System.out.println("File sudah ada!.");
       }
       
     } catch (IOException e) {
       e.printStackTrace();
 }
    }
}

Contoh output:

membuat file dengan program java

Sebuah file dengan nama filebaru.txt sudah dibuat pada direktori C:\bahasajavacom.

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.

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.

Memahami Stream Pada Program Java

Untuk proses input dan output pada program Java, maka package java.io memiliki class-class yang sangat lengkap untuk mendukung tujuan ini. Setiap streams ini bisa merepresentasikan sumber-sumber dari input dan juga target dari output. Package java.io juga mendukung banyak data, seperti data primitif, objek, dan sebagainya.

Java stream

Apa Itu Stream?

Secara mudahnya stream bisa diartikan sebagai "urutan dari data". Terdapat 2 jenis stream, yaitu:
  • InPutStream yang digunakan untuk membaca data dari sumbernya
  • OutPutStream yang digunakan untuk menulis data pada tujuan atau target
Untuk file dan jaringan (networks), Java memberikan dukungan fleksibel dan juga kuat. Namun, kita hanya akan melihat dasarnya saja melalui contoh-contoh yang sering digunakan secara umum.

Stream dari Karakter-karakter

Stream karakter (character) digunakan untuk proses input dan output unicode 16 bit. Terdapat banyak class yang berhubungan dengan stream dari karakter ini, tapi terdapat 2 class yang paling sering digunakan yaitu:
  • FileReader
  • FileWriter
Secara internal, FileReader ini menggunakan FileInputStream, sedangkan FileWriter menggunakan FileOutputStream. Namun, perbedaan signifikan diantara keduanya adalah FileReader akan membaca 2 byte dalam sekali waktu sedangkan FileWriter akan menulis 2 byte dalam sekali waktu.

Stream dari Bytes

Bytes stream digunakan ketika membaca input dan output 8 bytes. Terdapat banyak class yang terkait dengan stream byte ini, namun yang paling banyak digunakan adalah:
  • FileInputStream
  • FileOutputStream

Standar Stream

Pada Java, sama seperti pada bahasa pemrograman lainnya, memiliki dukungan untuk standar I/O. Ini berguna ketika user memberikan input melalui keyboard dan kemudian menghasilkan output melalui layar komputer.



Java memiliki 3 standar streams, yaitu:
  • Standar error, digunakan untuk memberikan ouput data error yang dihasilkan oleh program yang digunakan oleh user. Layar komputer biasanya digunakan sebagai standar error stream dan direpresentasikan sebagai System.err.

  • Standar input, digunakan untuk memberi data (input) pada program, . Biasanya user menggunakan keyboard sebagai sarana untuk standar input stream dan direpresentasikan sebagai Sytem.in.

  • Standar output, digunakan sebagai ouput data yang dihasilkan oleh program user dan basanya layar komputer digunakan untuk menampilkan standar output stream dan direpresentasikan sebagai System.out. 

6 Perbedaan Signifikan Antara BufferedReader dan Scanner Pada Java

Class BufferedReader dan Scanner merupakan dua class yang bisa digunakan untuk membaca file ataupun input dari user melalui command prompt dalam program Java. Namun, diantara keduanya ternyata terdapat perbedaan yang signifikan dan oleh karena itu perlu untuk anda ketahui.

Satu perbedaan utama adalah bahwa BufferedReader hanya dapat membaca String, namun Scanner bisa membaca String dan tipe data yang lainnya seperti long, double, float, short, int. Perbedaan dalam hal fungsional ini memberikan beberapa perbedaan lain dalam penggunaannya.

Pada kesempatan kali ini, tidak hanya akan dibahas mengenai perbedaan antara kedunya saja. Tapi, akan dijelaskan juga mengenai contoh penggunaan keduanya dalam program.

Perbedaan BufferedReader dan Scanner

Berikut ini adalah perbedaab dua class tersebut pada pemrograman Java:
  1. Class BufferedReader hanya bisa membaca String, sedangkan Scanner mampu untuk melakukan parse pada input dari user dan membaca tipe data long, double, float, short, int secara terpisah dari String. Bisa dikatakan bahwa Scanner ini lebih powerfull jika dibandingkan dengan BufferedReader.

  2. Scanner memiliki buffer 1KB, sedangkan BufferedReader memiliki 8KB. Ini berarti jika anda ingin membaca String yang panjang dari suatu file maka anda dapat menggunakan BufferedReader. Namun, jika diperlukan untuk input yang pendek atau selain dari String maka Scanner bisa digunakan.

  3. Scanner adalah class yang lebih baru diperkenalkan, yaitu sejak Java 1.5 sedangkan BufferedReader telah hadir lebih dulu pada Java 1.1

  4. Scanner menggunakan regular expression (regex) untuk membaca dan parse pada input text. Scanner dapat menerima delimiter yang ditentukan oleh programmer sendiri (custom delimiter) dan melakukan parse text pada tipe data primitif dengan method seperti nextLong(), nextDouble(), nextFloat(), nextShort(), nextInt(). BufferedReader hanya dapat membaca dan menyimpan String menggunakan method readLine().

  5. BufferedReader merupakan class yang disinkronisasi (synchronized) sedangkan Scanner tidak demikian. Oleh karena itu, anda bisa menshare objek BufferedReader diantara beberapa thread, tapi anda tidak bisa melakukan ini pada Scanner. 

  6. BufferedReader lebih cepat dari pada Scanner karena tidak memerlukan waktu untuk parse
Contoh:

package com.bahasajava.io;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.InputMismatchException;
import java.util.Scanner;

public class BufferedReaderDanScanner {
 
 public static void main(String[] args) {
  Scanner input = new Scanner(System.in);
  System.out.println("|***************************************************|");
  System.out.println("  Menggunakan Scanner untuk membaca input dari user");
  System.out.println("|***************************************************|");
  boolean inputUser = true;
  
  do{
   try{
    System.out.println("Silakan masukkan nama:");
    String nama = input.nextLine();
    
    System.out.println("Silakan masukkan umur dalam integer: ");
    int umur = input.nextInt();
    
    inputUser = false;
   }
   catch (InputMismatchException e){
    System.out.println("Masukkan input yang sesuai!");
    input.nextLine();
   }
  }while(inputUser);
  
  input.close();
  
  System.out.println("|***********************************************************|");
  System.out.println("  Menggunakan BufferedReader untuk membaca file text");
  System.out.println("|***********************************************************|");
  
  try {
   FileReader fileReader = new FileReader("C:/bahasajavacom/myFile.txt");
   BufferedReader bufferedReader = new BufferedReader(fileReader);
   System.out.println("File anda memiliki baris teks sebagai berikut: ");
   try { 
    String baris = bufferedReader.readLine();
    
    while (baris != null){
     System.out.println(baris);
     baris = bufferedReader.readLine();
    }
    
    bufferedReader.close();
    fileReader.close();
    
   } catch (IOException e){
    e.printStackTrace();
     }
   } catch (FileNotFoundException e) {
    e.printStackTrace();
  }
 }
}

Contoh output:

output bufferedreader scanner java

Dari contoh tersebut, bisa disimpulkan begitu mudahnya Scanner membaca tipe data String dan juga integer dan juga bagaimana class BufferedReader dengan simpel membaca text dari suatu file text dengan simpel.



Class Mana Yang Akan Anda Gunakan?


Itulah perbedaan antara BufferedReader dan Scanner. Jadi gunakan Scanner ketika anda ingin menangani input yang terdiri dari String ataupun tipe data numerik seperti double, float, int dan sebagainya. Sebaliknya, gunakan BufferedReader ketika anda ingin membaca text tanpa parsing, dan karena memiliki buffer yang tinggi, maka BufferedReader dapat juga digunakan untuk membaca String yang panjang pada program Java.

Membaca Input Dari User Menggunakan Class BufferedReader Pada Java

BufferedReader merupakan salah satu class yang paling banyak digunakan dalam pemrograman Java. Pada kesempatan  kali ini kita akan mencoba memahami syntax dasar, penggunaan method dan juga prinsip dari class tersebut untuk membaca input dari user.

Berikut ini adalah hirarki dari class tersebut:

java.lang.Object
      java.io.Reader
           java.io.BufferedReader

Fungsi dasar dari BufferedReader adalah membaca file dari input stream. Lebih spesifik lagi bahwa class ini digunakan sebagai buffer dari karakter-karakter dengan tujuan membuat penanganan yang lebih efisien untuk string, character, dan array.

Terdapat dua constructor untuk class BufferedReader ini, yaitu:
  • BufferedReader(Reader in)
  • BufferedReader(Reader in, int sz)
Namun, agar lebih mudah untuk memahaminya, maka kita hanya akan menggunakan constructor yang pertama dimana constructor itu hanya mengambil Reader sebagai argumennya.

Berikut ini adalah contoh bagaimana membuat objek dari class BufferedReader:

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

Contoh kode program:

package com.bahasajava.io;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


//Membaca input dari user melalui konsol dengan menggunakan BufferedReader

public class ContohBufferedReader {

 public static void main(String[] args) {
  
  //Membuat objek BufferedReader
  BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
  
  //Membuat user prompt untuk menginput nama
  System.out.print("Masukkan nama anda: ");
  
  //Membuat objek StringBuffer
  StringBuffer stringBuffer = new StringBuffer("Selamat datang ");
  
  //Membaca input dari user
  try {
   
   //Menggabungkan string Selamat datang dengan baris text yang berasal dari 
   //input oleh user
   stringBuffer.append(bufferedReader.readLine());
   
   //menutup objek BufferedReader
   bufferedReader.close();
   
   //Menampilkan string setelah menerima input dari user
   System.out.println(stringBuffer);
   
   //Menangkap exception yang mungkin terlempar ketika user memasukkan input
  } catch (IOException e) {
   System.out.println("Error terjadi ketika mencoba mendapatkan input dari user: "
     + e.getMessage());
   e.printStackTrace();
  }
  
 }
}

Output:

Masukkan nama anda: Nesta Rama
Selamat datang Nesta Rama


BufferedReader input user


Jadi apa sebenarnya maksud dan tujuan dari contoh program di atas? Pada dasarnya program itu hanya mendapatkan input pengguna dari konsol dan kemudian mencetak pesan selamat datang.

Selanjutnya mari kita pahami setiap bagian kode tersebut. Pertama-tama,  objek BufferedReader dibuat dengan konstruktor yang menggunakan Reader sebagai argumen. Setelah itu, user akan diminta memasukkan namanya pada konsol melalui keyboard dengan System.out.print ("Masukkan nama Anda: "). Kemudian objek StringBuffer diinisialisasi dengan konten inisial "Selamat datang ". Silakan anda membaca mengenai StringBuffer untuk memahaminya lebih lanjut. Tujuan dari mendeklarasikan StringBuffer “stringBuffer” adalah untuk mempersiapkan pesan selamat datang, yaitu "Selamat datang NamaUser".


Kemudian  input pengguna berupa baris text dibaca menggunakan method class BufferedReader yaitu readLine(). Metode ini akan mengembalikan baris lengkap dari representasi String sesuai dengan apa yang telah dimasukkan oleh user pada konsol. Hasil dari method readLine() itu digabungkan dengan konten StringBuffer menggunakan method append().  Method close() dipanggil untuk menutup stream sehingga dapat menghindari kebocoran memori (memory leak) dan komplikasi lebih lanjut pada kode program tersebut.

Anda mungkin juga memperhatikan bahwa pada kode tersebut terdapat blok try-catch dan ini merupakan bagian dari exception handling. Hal ini dikarenakan readLine() dan close () melemparkan IOException sehingga anda harus menangkapnya (catch) atau melemparkannya (throw) kembali. Dengan demikian jika terjadi error pada saat mendapatkan input dari user maka anda akan mendapatkan pesan dan stack trace lengkap mengenai apa yang terjadi.

Membaca Data File Menggunakan Class Scanner Pada Program Java

Class java.util.Scanner sebelumnya telah anda ketahui penggunaanya untuk memperoleh input dari user atau untuk membaca string dan nilai primitif dari konsol. Cara kerja Scanner ini yaitu dengan memecahkan input tersebut menjadi "token" yang dibatasi oleh karakter spasi.

Ada beberapa cara sebenarnya untuk membaca file berupa text atau binary pada Java, diantaranya adalah menggunakan:

  • FileReader
  • BufferedReader
  • FileInputStream
BufferedReader sering digunakan untuk membaca text file.

Oke, kita kembali lagi ke class Scanner, yang saya yakin anda lebih familiar dibandingkan ketiga class tersebut. Scanner ini memang lebih sering digunakan dan lebih populer untuk menangani input dari user. Meskipun demikan, tentunya anda juga senang mengetahui bahwa Scanner bisa digunakan untuk membaca file.

Serupa dengan class BufferedReader, class scanner juga menyediakan buffering namun dengan ukuran yang lebih kecil yaitu 1Kb dan class ini juga dapat digunakan untuk membaca file secara baris per baris.

Ketika anda membaca input dari keyboard komputer maka anda dapat melakukannya dengan membuat objek Scanner:

Scanner input = new Scanner(System.in);

Sedangkan ketika anda ingin membaca dari sebuah file, maka anda dapat membuat objek Scanner sebagai berikut:

Scanner input = new Scanner (new File(nama file));

Method-method Pada Class Scanner

Berikut ini adalah method-method dari class Scanner yang sering digunakan:

Method Penjelasan
public String next() Mengembalikan token berikutnya dari scanner
public String nextLine() Memindahkan scanner ke baris berikutnya dan mengembalikan nilai dalam string
public byte nextByte() Mengscan token berikutnya sebagai suatu byte
public short nextShort() Mengscan token berikutnya sebagai suatu nilai short
public int nextInt() Mengscan token berikutnya sebagai suatu nilai int
public long nextLong() Mengscan token berikutnya sebagai suatu nilai long
public float nextFloat() Mengscan token berikutnya sebagai suatu nilai float
public double nextDouble() Mengscan token berikutnya sebagai suatu nilai double
boolean hasNext() Mengembalikan nilai true jika scanner memiliki token lainnya dalam input
void close Untuk menutup scanner
Scanner useDelimiter(String pattern) Method ini menetapkan pola pemisah scanner ke pola yang dibangun dari String yang ditentukan.

Contoh Penggunaan Class Scanner Untuk Membaca File Text


Misalkan terdapat file dengan nama nilai ujian.txt yang terdapat di path direktori C:/bahasa java/nilai ujian.txt. Di dalam file text tersebut terdapat data mengenai nama awal, tengah, dan akhir siswa beserta dengan nilai ujiannya.

Seperti pada gambar berikut ini:

membaca-file-nilai-ujian-dengan-class-Scanner
Kode program berikut ini akan menampilkan isi file tersebut pada konsol dengan menggunakan class Scanner.

package com.bahasajava.io;

import java.io.File;
import java.util.Scanner;

public class BacaData {
 
 public static void main(String[] args) throws Exception {
  
  //Membuat sebuah objek File
  File file = new File("C:/bahasa java/nilai ujian.txt");
  
  //Mengecek apakah file tersebut ada?
  boolean cekFile = file.exists();
  System.out.println("Apakah file tersebut ada? " + cekFile);
  
  //Membuat objek Scanner untuk file
  Scanner input = new Scanner(file);
  
  //Membaca data dari file
  while(input.hasNext()) {
   String namaAwalSiswa = input.next();
   String namaTengahSiswa = input.next();
   String namaAkhirSiswa = input.next();
   
   double nilaiUjian = input.nextDouble();
   
   //Menampilkan data file pada konsol
   System.out.println(namaAwalSiswa + " " + namaTengahSiswa + " " 
   + namaAkhirSiswa + " " + nilaiUjian);
  }
  
  //Menutup file
  input.close();
 }

}

Agar Scanner bisa membaca data dari sebuah file maka anda harus membuat objek dari class java.io.File dengan menggunakan constructor new File (nama file). Kemudian menggunakan new Scanner(File) untuk membuat sebuah Scanner untuk file.

Exception bisa saja terlempar ketika memanggil constructor new Scanner(File), oleh karena itu method main mendeklarasikan throws Exception.

Pada kode juga terdapat while loop yang akan melakukan perulangan untuk membaca nama awal, tengah, dan akhir dari siswa beserta nilainya.

Selanjutnya bagian terakhir adalah pernyataan input.close(). Sebenarnya anda tidak perlu untuk menutupnya. Namun, ini adalah praktek yang bagus untuk melepaskan sumberdaya yang dimiliki oleh file tersebut.

Output:
Apakah file tersebut ada? true
Nazia Putri Arnita 98.27
Muhammad Syuja Althafarizki 95.33
Paulia Anjarina Putri 94.56
Zouza Putri Gumelar 93.56