Membaca dan Menulis Berkas dengan Redirect dari Standard Input
Sebelumnya kita pernah mempelajari bagaimana menulis dan membaca berkas
teks dengan me-redirectdari standard input dan output. Sebagai contoh,
misalkan sebuah program Halo.java berikut:
public class Halo
{
public static void main(String[] args)
{
System.out.println("Halo! Apa kabar dunia?");
}
}
Jika dijalankan, program di atas akan mencetak “Halo! Apa kabar
dunia?” di terminal. Keluaran yang dihasilkan program tersebut bisa disimpan ke
suatu berkas dengan menambahkan >namaberkas pada saat
dijalankan, contohnya:
java Halo > hasil.txt
Jika perintah di atas dijalankan, maka teks “Halo! Apa kabar
dunia?” akan ditulis di berkashasil.txt. Untuk membaca berkas teks, kita bisa
menambahkan <namaberkas. Sebagai contoh program berikut meminta
masukan berupa dua string yang berisi informasi nama depan dan nama belakang.
import java.util.Scanner;
public class CetakNama
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String namaDepan = input.next();
String namaBelakang = input.next();
System.out.println("Nama: " + namaDepan + " " + namaBelakang);}}
Kita bisa memasukkan nama depan dan nama belakang di terminal.
Kita bisa juga menulisnya di berkas (misalnya namaku.txt) lalu dijalankan dengan
perintah berikut.
java CetakNama < namaku.txt
berikut membaca masukan teks dalam satu baris dan mencetak ke
layar.
import java.util.Scanner;
public class CetakSemuaBaris
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String teksBaris;
while (input.hasNextLine()) {teksBaris = input.nextLine();System.out.println(teksBaris);}}}
Program di atas bisa digunakan untuk menyalin isi suatu berkas
teks ke berkas lain dengan perintah
java CetakSemuaBaris < berkas.txt > salinan_berkas.txt
Perintah di atas mengatakan: jalankan CetakSemuaBaris dengan
membaca berkas.txt sebagai masukan lalu simpan keluarannya di salinan_berkas.txt.
Selain membaca dan menulis berkas, kita juga bisa menambahkan teks
ke berkas yang sudah ada
dengan menambahkan >>namaberkas. Silakan
dicoba sendiri.
Membaca dan Menulis Berkas Langsung dari Program Java
Sekarang, kita akan mempelajari
cara membaca dan menulis berkas teks langsung dari program Java.Untuk membaca
berkas, kita membutuhkan kelas Scanner (yang sudah digunakan sebelumnya)
danFile. Sebuah objek dari kelas File menjadi parameter dari konstruktor objek
Scanner (pada contoh sebelumnya menggunakan parameter System.in). Misalkan kita
ingin memodifikasi program CetakSemuaBaris.java di atas supaya membaca langsung
dari berkas tanpa menggunakan redirection dari standard input.
import java.util.Scanner;
import java.io.File;
public class CetakBerkas
{
public static void main(String[] args)
{
2 dari 7
File berkasDiolah = new File("CetakBerkas.java");
Scanner input = new Scanner(berkasDiolah);String teksBaris;while (input.hasNextLine()) {teksBaris = input.nextLine();System.out.println(teksBaris);}} }
Salin program di atas dan compile. Apa yang terjadi? Anda akan
mendapatkan pesan error berikut.
CetakBerkas.java:9: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrownScanner input = new Scanner(berkasDiolah);111
Supaya program tersebut bisa dicompile, cukup tambahkan throws
Exception di belakang header method main. Materi mengenai Exception akan dibahas di bagian
berikutnya. Untuk menulis ke berkas, Anda memerlukan kelas PrintWriter. Gunakan
method print atauprintln untuk menulis ke berkas. Berikut adalah contohnya:
import java.io.PrintWriter;
public class TulisBerkas
{
public static void main(String[] args) throws Exception
{
PrintWriter cetakan = new PrintWriter("cetakan.txt");
cetakan.println("Ini baris pertama.");
cetakan.println("Berikutnya baris kedua.");
cetakan.println("Lalu baris ketiga.");cetakan.close();}}
Setelah objek PrintWriter (cetakan) menulis ke berkas, jangan lupa
memanggil method close() untuk melepas resource yang digunakan oleh objek
PrintWriter. Silakan Anda coba dan lihat
hasilnya jika program di atas dijalankan.
0 komentar
Posting Komentar
Kritik dan Saran Anda sangat kami perlukan