Last Updated on November 4, 2021 by
Artikel seri tutorial Java sebelumnya telah membahas tentang inheritance pada Java. Kali ini, Codekey akan mengajak Anda untuk mengetahui tentang Input Output Java atau yang dikenal juga dengan Java I/O.
Java sendiri menggunakan konsep Stream untuk membuat operasi I/O menjadi lebih cepat. Paket dari Java.io sendiri berisikan kelas yang dibutuhkan untuk input dan output.
Semua stream ini mewakili sumber input maupun tujuan output. Stream dalam paket java.io mendukung banyak data seperti primitif, objek, karakter lokal, dan lain sebagainya. Jika Anda tertarik untuk belajar lebih banyak tentang Input Output Java, pastikan Anda menyimak artikel ini sampai habis.
Stream
Sebelum belajar tentang cara input output Java, Anda perlu memahami dulu tentang Stream. Apa itu stream?
Stream dapat didefinisikan sebagai bagian-bagian dari data. Ada dua stream yang perlu Anda ketahui yaitu:
-
- InPutStream – stream ini digunakan untuk membaca data dari sumber.
- OutPutStream – stream ini digunakan untuk menulis data untuk suatu tujuan.
Java sudah menyediakan dukungan I/O yang fleksibel namun kuat berkiatan dengan file dan jaringan. Berikut ini adalah beberapa stream yang sangat umum digunakan.
Byte Streams
ByteStream Java digunakan untuk melakukan input dan output tipe data byte 8-bit. Meskipun ada banyak kelas yang terkait dengan stream byte tetapi kelas yang paling sering digunakan adalah, FileInputStream dan FileOutputStream.
Berikut ini adalah contoh kode yang menggunakan kedua kelas tersebut untuk menyalin file input ke file output.
import java.io.*; public class CopyFile { public static void main(String args[]) throws IOException { FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream("input.txt"); out = new FileOutputStream("output.txt"); int c; while ((c = in.read()) != -1) { out.write(c); } }finally { if (in != null) { in.close(); } if (out != null) { out.close(); } } } }
Kemudian, Anda perlu memiliki sebuah file input.txt dengan mengikuti contoh berikut ini:
Ini Adalah Isi txt Untuk Uji Coba.
Langkah selanjutnya, kompilasikan program di atas dan kemudian eksekusi program tersebut, yang mana hasilnya akan membuat sebuat file output.txt dengan konten yang sama seperti yang kita punya dalam input.txt. Jadi, mari tambahkan kode di atas dalam file CopyFile.java dan lakukan hal seperti di bawah ini:
$javac CopyFile.java $java CopyFile
Character Streams
Java Byte Streams digunakan untuk mengoperasikan input dan output dari 8-bit bytes, yang mana Character Stream pada Java digunakan untuk mengoperasikan input dan output 16-bit Unicode. Meskipun ada banyak kelas yang terkait dengan stream karakter tetapi kelas yang paling sering atau biasanya digunakan adalah, kelas FileReader dan kelas FileWriter.
Meskipun secara internal FileReader menggunakan fungsi FileInputStream dan FileWriter menggunakan fungsi FileOutputStream tetapi, perbedaan utamanya adalah FileReader membaca dua byte sekaligus dan sedangkan FileWriter berfungsi untuk menulis dua byte sekaligus.
Kita dapat menulis ulang contoh di atas, yang menggunakan kedua kelas ini untuk menyalin file input (memiliki karakter unicode) ke dalam file output sebagai berikut:
import java.io.*; public class CopyFile { public static void main(String args[]) throws IOException { FileReader in = null; FileWriter out = null; try { in = new FileReader("input.txt"); out = new FileWriter("output.txt"); int c; while ((c = in.read()) != -1) { out.write(c); } }finally { if (in != null) { in.close(); } if (out != null) { out.close(); } } } }
Sekarang kita harus memiliki file input.txt dengan konten berikut:
Ini Adalah Isi txt Untuk Uji Coba.
Pada langkah selanjutnya, kompilasi dari kode program di atas dan yang jalankan, yang akan menghasilkan file output.txt dengan konten yang sama seperti yang kita miliki di input.txt. Kemudian, letakkan kode di atas dalam file CopyFile.java dan lakukan hal berikut:
$javac CopyFile.java $java CopyFile
Standard Stream
Semua bahasa pemrograman menyediakan dukungan untuk I / O standar. didalam program pengguna dapat mengambil input dari keyboard dan kemudian menghasilkan output di layar komputer. Jika Anda sebelumnya telah mengetahui bahasa pemrograman C atau C ++, maka Anda mengetahui fungsi dari tiga perangkat standar STDIN, STDOUT dan STDERR. Demikian pula, Java menyediakan tiga standard stream berikut:
- Standard Input
Standard Input digunakan untuk memasukkan data ke program pengguna dan biasanya keyboard digunakan sebagai stream input standar dan direpresentasikan sebagai System.in.
- Standard Output
Standard Output digunakan untuk mengeluarkan data atau output yang dihasilkan oleh program pengguna. biasanya output akan muncul pada layar komputer. digunakan untuk stream keluaran standar dan direpresentasikan sebagai System.out.
- Standard Error
Standard Error digunakan untuk mengeluarkan data kesalahan yang dihasilkan oleh program pengguna dan biasanya layar komputer digunakan untuk stream kesalahan standar dan direpresentasikan sebagai System.err.
Berikut ini adalah program sederhana, yang membuat InputStreamReader untuk membaca stream input standar sampai pengguna mengetik “q”:
import java.io.*; public class ReadConsole { public static void main(String args[]) throws IOException { InputStreamReader cin = null; try { cin = new InputStreamReader(System.in); System.out.println("Masukkan Karakter, Ketik 'q' Untuk Keluar."); char c; do { c = (char) cin.read(); System.out.print(c); } while(c != 'q'); }finally { if (cin != null) { cin.close(); } } } }
Kemudian, simpan kode di atas dalam file ReadConsole.java dan coba kompilasi dan jalankan seperti yang ditunjukkan pada program berikut. Program ini terus membaca dan mengeluarkan karakter yang sama sampai kita menekan ‘q’.
$javac ReadConsole.java $java ReadConsole Masukkan Karakter, Ketik 'q' Untuk Keluar. 1 1 e e q q
Membaca dan Menulis File
Seperti yang telah dijelaskan di bagian sebelumnya, stream dapat didefinisikan sebagai urutan data. InputStream digunakan untuk membaca data dari sumber file dan OutputStream digunakan untuk menulis data file ke tujuan yang telah ditentukan. Berikut adalah hierarki kelas untuk menangani stream Input dan Output.
Dua stream penting pada Java I/O adalah FileInputStream dan FileOutputStream, yang akan dibahas dalam tutorial ini.
File Input Stream
Stream ini digunakan untuk membaca data dari file. Objek dapat dibuat menggunakan kata kunci baru dan ada beberapa jenis konstruktor yang telah disediakan.
Konstruktor berikut akan mengambil nama file sebagai string untuk membuat objek stream input yang dapat membaca file:
InputStream f = new FileInputStream("C:/java/hello");
Konstruktor berikut ini mengambil sebuah file objek untuk membuat sebuah objek input stream untuk membaca file tersebut. Pertama, kita membuat sebuah objek dengan menggunakan metode File() seperti di bawah ini:
File f = new File("C:/java/hello"); InputStream f = new FileInputStream(f);
Setelah Anda memiliki objek InputStream, maka ada daftar metode pembantu yang dapat digunakan untuk membaca streaming atau melakukan operasi lain di dalam file stream. Beberapa metode yang dapat Anda gunakan:
- public void close () throws IOException {}
Metode ini menutup aliran keluaran file. Merilis sumber daya sistem apa pun yang terkait dengan file tersebut. Anda dapat melakukannya dengan melempar IOException.
- protected void finalize () throws IOException {}
Metode ini membersihkan koneksi ke file. Memastikan bahwa metode tutup aliran keluaran file ini dipanggil saat tidak ada lagi referensi ke aliran ini. Masih sama seperti cara sebelumnya, Anda dapat melakukannya dengan melempar IOException.
- public int read (int r) throws IOException {}
Metode ini membaca byte data yang ditentukan dari InputStream. Mengembalikan int. Mengembalikan byte dari data berikutnya dan nilai -1 akan dikembalikan jika itu adalah akhir dari file yang dibaca.
- public int read (byte [] r) throws IOException {}
Metode ini membaca r.length byte dari aliran input ke dalam array. Mengembalikan jumlah total byte yang dibaca. Jika ini adalah akhir file, -1 akan dikembalikan.
- public int available () throws IOException {}
Memberikan jumlah byte yang dapat dibaca dari aliran input file yang digunakan. Mengembalikan int.
Ada juga beberapa input stream penting lainnya yang tersedia, yaitu ByteArrayInputStream dan DataInputStream yang mungkin akan kami bahas di seri tutorial Java selanjutnya. Saat ini kami akan membahas tentang FileOutputStream.
File Output Stream
FileOutputStream digunakan untuk membuat sebuah file dan menulis data yang diberikan dalam java. Stream akan membuat sebuah file, jika hal tersebut belum ada, sebelum Anda membuka file tersebut untuk output.
Berikut ini dua konstruktor yang dapat digunakan untuk membuat objek FileOutputStream dalam program anda. Konstruktor berikut mengambil nama file sebagai string untuk membuat objek aliran input untuk menulis file.
OutputStream f = new FileOutputStream("C:/java/hello")
Konstruktor berikut mengambil objek file untuk membuat objek aliran output untuk menulis file. Pertama, kita membuat objek file menggunakan metode File () sebagai berikut:
File f = new File("C:/java/hello"); OutputStream f = new FileOutputStream(f);
Setelah Anda memiliki objek OutputStream, maka ada daftar metode pembantu, yang dapat digunakan untuk menulis ke streaming atau melakukan operasi lain di aliran.
- public void close () throws IOException {}
Metode ini menutup aliran keluaran file. Merilis sumber daya sistem apa pun yang terkait dengan file tersebut.
2. void dilindungi finalize () throws IOException {}
Metode ini membersihkan koneksi ke file. Memastikan bahwa metode tutup aliran keluaran file ini dipanggil saat tidak ada lagi referensi ke aliran ini.
3. public void write (int w) throws IOException {}
Metode ini menulis byte yang ditentukan ke aliran keluaran.
4. public void write (byte [] w)
Menulis w.length byte dari array byte yang disebutkan ke OutputStream. Berikut ini adalah contoh cara untuk mendemonstrasikan InputStream dan OutputStream
import java.io.*; public class fileStreamTest { public static void main(String args[]) { try { byte bWrite [] = {11,21,3,40,5}; OutputStream os = new FileOutputStream("test.txt"); for(int x = 0; x < bWrite.length ; x++) { os.write( bWrite[x] ); // membaca karakter byte } os.close(); InputStream is = new FileInputStream("test.txt"); int size = is.available(); for(int i = 0; i < size; i++) { System.out.print((char)is.read() + " "); } is.close(); } catch (IOException e) { System.out.print("Exception"); } } }
Kode di atas akan membuat file dengan nama test.txt dan akan menulis angka yang diberikan dalam format tipe data biner. Sama halnya dengan output pada layar stdout. Ada beberapa kelas lain yang akan kita lalui untuk mengetahui dasar-dasar Navigasi File dan I / O yaitu File Class, FileReader Class, dan FileWriter Class.
Direktori di Java
Direktori adalah objek File yang dapat berisi daftar file dan direktori lain. Anda dapat menggunakan objek File untuk membuat direktori, untuk membuat daftar file yang tersedia dalam direktori. Untuk detail lengkap pada penjelasan ini, periksa daftar semua metode yang dapat Anda panggil pada objek File dan apa yang terkait dengan direktori pada java.
Membuat Direktori
Ada dua metode utilitas File yang berguna, yang dapat digunakan untuk membuat direktori
1. Metode mkdir () membuat direktori, mengembalikan nilai true saat berhasil dan false saat gagal. biasanya pada metode ini Kegagalan ditunjukkan bahwa jalur yang ditentukan dalam objek File / path sudah ada, atau direktori tidak dapat dibuat karena seluruh jalur / path file belum ada.
2. Metode mkdirs () membuat direktori dan semua induk direktori.
Contoh berikut membuat direktori “/ tmp / user / java / bin”
import java.io.File; public class CreateDir { public static void main(String args[]) { String namadirektori = "/tmp/user/java/bin"; File d = new File(namadirektori); // Perintah membuat direktori. d.mkdirs(); } }
Kompilasi dan jalankan kode di atas untuk membuat “/ tmp / user / java / bin”. Perlu diingat pula, Java secara otomatis menangani pemisah jalur pada UNIX dan Windows sesuai konvensi. Jika Anda menggunakan garis miring (/) pada Java versi Windows, jalur akan tetap terselesaikan dengan benar.
Direktori Pencatatan
Anda dapat menggunakan metode list () yang disediakan oleh objek File untuk membuat daftar semua file dan direktori yang tersedia dalam direktori sebagai berikut:
import java.io.File; public class ReadDir { public static void main(String[] args) { File file = null; String[] paths; try { // membuat object file baru file = new File("/tmp"); // array dari file dan direktori paths = file.list(); // perintah perulangan untuk setiap nama dalam array path for(String path:paths) { // mencetak nama file dan nama direktori System.out.println(path); } } catch (Exception e) { // jika terdapat error, perintah ini akan dijalankan e.printStackTrace(); } } }
Kode ini akan menghasilkan output sebagai berikut:
test1.txt test2.txt ReadDir.java ReadDir.class
Demikianlah penjelasan tentang Java IO serta contoh program input output java. Masih ada banyak lagi jenis-jenis stream yang ada, namun stream yang digunakan untuk input output Java adalah stream terpenting untuk Anda pahami. Jika Anda tertarik untuk belajar bahasa pemrograman, pastikan Anda mengunjungi website Codekey.
Codekey menyediakan berbagai artikel tutorial, pembahasan, tips dan trik untuk Anda belajar berbagai bahasa pemrograman. Pastikan Anda mendapatkan update terbaru dari situs Codekey.
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.