java
Paket java.io berisi hampir setiap kelas yang mungkin Anda perlukan untuk melakukan input dan output (I/O) di Java. Semua aliran ini mewakili sumber input dan tujuan output. Aliran dalam paket java.io mendukung banyak data seperti primitif, objek, karakter lokal, dll.
Aliran dapat didefinisikan sebagai urutan data. Ada dua jenis Aliran
InPutStream InputStream digunakan untuk membaca data dari sumber.
OutPutStream OutputStream digunakan untuk menulis data ke tujuan.
Java menyediakan dukungan yang kuat namun fleksibel untuk I/O yang terkait dengan file dan jaringan tetapi tutorial ini mencakup fungsionalitas yang sangat mendasar yang terkait dengan aliran dan I/O. Kita akan melihat contoh yang paling umum digunakan satu per satu
Aliran byte Java digunakan untuk melakukan input dan output byte 8-bit. Meskipun ada banyak kelas yang terkait dengan aliran byte tetapi kelas yang paling sering digunakan adalah, FileInputStream dan FileOutputStream . Berikut adalah contoh yang menggunakan dua kelas ini untuk menyalin file input ke file output −
Contoh
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(); } } } }
Sekarang mari kita buat file input.txt dengan konten berikut
This is test for copy file.
Sebagai langkah selanjutnya, kompilasi program di atas dan jalankan, yang akan menghasilkan file output.txt dengan konten yang sama seperti yang kita miliki di input.txt. Jadi mari kita letakkan kode di atas dalam file CopyFile.java dan lakukan hal berikut
$javac CopyFile.java $java CopyFile
Java Byte stream digunakan untuk melakukan input dan output byte 8-bit, sedangkan Java Karakter stream digunakan untuk melakukan input dan output untuk unicode 16-bit. Meskipun ada banyak kelas yang terkait dengan aliran karakter tetapi kelas yang paling sering digunakan adalah, FileReader dan Penulis File . Meskipun secara internal FileReader menggunakan FileInputStream dan FileWriter menggunakan FileOutputStream tetapi di sini perbedaan utamanya adalah FileReader membaca dua byte sekaligus dan FileWriter menulis dua byte sekaligus.
Kita dapat menulis ulang contoh di atas, yang menggunakan kedua kelas ini untuk menyalin file input (memiliki karakter unicode) ke file output −
Contoh
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 mari kita buat file input.txt dengan konten berikut
This is test for copy file.
Sebagai langkah selanjutnya, kompilasi program di atas dan jalankan, yang akan menghasilkan file output.txt dengan konten yang sama seperti yang kita miliki di input.txt. Jadi mari kita letakkan kode di atas dalam file CopyFile.java dan lakukan hal berikut
$javac CopyFile.java $java CopyFile
Semua bahasa pemrograman menyediakan dukungan untuk I/O standar di mana program pengguna dapat mengambil input dari keyboard dan kemudian menghasilkan output di layar komputer. Jika Anda mengetahui C atau C++ bahasa pemrograman, maka Anda harus mengetahui tiga perangkat standar STDIN, STDOUT dan STDERR. Demikian pula, Java menyediakan tiga aliran standar berikut −
Masukan Standar Ini digunakan untuk memasukkan data ke program pengguna dan biasanya keyboard digunakan sebagai aliran input standar dan direpresentasikan sebagai System.in .
Keluaran Standar Ini digunakan untuk mengeluarkan data yang dihasilkan oleh program pengguna dan biasanya layar komputer digunakan untuk aliran keluaran standar dan direpresentasikan sebagai System.out .
Kesalahan Standar Ini digunakan untuk menampilkan data kesalahan yang dihasilkan oleh program pengguna dan biasanya layar komputer digunakan untuk aliran kesalahan standar dan direpresentasikan sebagai System.err .
Berikut ini adalah program sederhana, yang membuat InputStreamReader untuk membaca aliran input standar hingga pengguna mengetik "q"
Contoh
Demo Langsungimport 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("Enter characters, 'q' to quit."); char c; do { c = (char) cin.read(); System.out.print(c); } while(c != 'q'); }finally { if (cin != null) { cin.close(); } } } }
Mari kita 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 Enter characters, 'q' to quit. 1 1 e e q q
Seperti dijelaskan sebelumnya, aliran dapat didefinisikan sebagai urutan data. InputStream digunakan untuk membaca data dari sumber dan OutputStream digunakan untuk menulis data ke tujuan.
Berikut adalah hierarki kelas untuk menangani aliran Input dan Output.
Dua aliran penting adalah FileInputStream dan FileOutputStream , yang akan dibahas dalam tutorial ini.
Aliran ini digunakan untuk membaca data dari file. Objek dapat dibuat menggunakan kata kunci baru dan ada beberapa jenis konstruktor yang tersedia.
Konstruktor berikut mengambil nama file sebagai string untuk membuat objek aliran input untuk membaca file −
InputStream f = new FileInputStream("C:/java/hello");
Konstruktor berikut mengambil objek file untuk membuat objek aliran input untuk membaca file. Pertama kita buat objek file menggunakan metode File() sebagai berikut
File f = new File("C:/java/hello"); InputStream f = new FileInputStream(f);
Setelah Anda memiliki InputStream objek di tangan, lalu ada daftar metode pembantu yang dapat digunakan untuk membaca ke streaming atau untuk melakukan operasi lain di aliran.
No.Pr. | Metode &Deskripsi |
---|---|
1 | public void close() melempar IOException{} Metode ini menutup aliran keluaran file. Melepaskan semua sumber daya sistem yang terkait dengan file. Melempar IOException. |
2 | 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. Melempar IOException. |
3 | public int read(int r)throws IOException{} Metode ini membaca byte data yang ditentukan dari InputStream. Mengembalikan sebuah int. Mengembalikan byte data berikutnya dan -1 akan dikembalikan jika itu adalah akhir dari file. |
4 | public int read(byte[] r) melempar IOException{} Metode ini membaca r.length byte dari aliran input ke dalam array. Mengembalikan jumlah total byte yang dibaca. Jika ini adalah akhir dari file, -1 akan dikembalikan. |
5 | public int available() melempar IOException{} Memberikan jumlah byte yang dapat dibaca dari aliran input file ini. Mengembalikan sebuah int. |
Ada input stream penting lainnya yang tersedia, untuk detail lebih lanjut Anda dapat merujuk ke tautan berikut −
ByteArrayInputStream
DataInputStream
FileOutputStream digunakan untuk membuat file dan menulis data ke dalamnya. Stream akan membuat file, jika belum ada, sebelum membukanya untuk output.
Berikut adalah dua konstruktor yang dapat digunakan untuk membuat objek FileOutputStream.
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 OutputStream objek di tangan, lalu ada daftar metode pembantu, yang dapat digunakan untuk menulis ke streaming atau untuk melakukan operasi lain di aliran.
No.Pr. | Metode &Deskripsi |
---|---|
1 | public void close() melempar IOException{} Metode ini menutup aliran keluaran file. Melepaskan semua sumber daya sistem yang terkait dengan file. Melempar IOException. |
2 | 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. Melempar IOException. |
3 | public void write(int w)throws IOException{} Metode ini menulis byte yang ditentukan ke aliran keluaran. |
4 | public void write(byte[] w) Menulis byte w.length dari array byte yang disebutkan ke OutputStream. |
Ada aliran keluaran penting lainnya yang tersedia, untuk lebih jelasnya Anda dapat merujuk ke tautan berikut −
ByteArrayOutputStream
DataOutputStream
Contoh
Berikut adalah contoh 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] ); // writes the bytes } 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 test.txt dan akan menulis angka yang diberikan dalam format biner. Hal yang sama akan menjadi output pada layar stdout.
Ada beberapa kelas lain yang akan kita lalui untuk mengenal dasar-dasar Navigasi File dan I/O.
Kelas File
Kelas FileReader
Kelas FileWriter
Direktori adalah File yang dapat berisi daftar file dan direktori lain. Anda menggunakan File objek untuk membuat direktori, untuk membuat daftar file yang tersedia di direktori. Untuk detail lengkap, periksa daftar semua metode yang dapat Anda panggil pada objek File dan apa yang terkait dengan direktori.
Ada dua File useful yang berguna metode utilitas, yang dapat digunakan untuk membuat direktori
mkdir() metode membuat direktori, mengembalikan true pada keberhasilan dan false pada kegagalan. Kegagalan menunjukkan bahwa jalur yang ditentukan dalam objek File sudah ada, atau direktori tidak dapat dibuat karena seluruh jalur belum ada.
mkdirs() metode membuat direktori dan semua induk direktori.
Contoh berikut membuat direktori "/tmp/user/java/bin" −
Contoh
import java.io.File; public class CreateDir { public static void main(String args[]) { String dirname = "/tmp/user/java/bin"; File d = new File(dirname); // Create directory now. d.mkdirs(); } }
Kompilasi dan jalankan kode di atas untuk membuat "/tmp/user/java/bin".
Catatan Java secara otomatis menangani pemisah jalur pada UNIX dan Windows sesuai konvensi. Jika Anda menggunakan garis miring (/) pada Java versi Windows, jalur akan tetap diselesaikan dengan benar.
Anda dapat menggunakan daftar() metode yang disediakan oleh File objek untuk membuat daftar semua file dan direktori yang tersedia dalam direktori sebagai berikut −
Contoh
import java.io.File; public class ReadDir { public static void main(String[] args) { File file = null; String[] paths; try { // create new file object file = new File("/tmp"); // array of files and directory paths = file.list(); // for each name in the path array for(String path:paths) { // prints filename and directory name System.out.println(path); } } catch (Exception e) { // if any error occurs e.printStackTrace(); } } }
Ini akan menghasilkan hasil berikut berdasarkan direktori dan file yang tersedia di /tmp . Anda direktori
Keluaran
test1.txt test2.txt ReadDir.java ReadDir.class
java
Kelas InputStreamReader Java Dalam tutorial ini, kita akan belajar tentang Java InputStreamReader dan metodenya dengan bantuan contoh. InputStreamReader kelas java.io package dapat digunakan untuk mengubah data dalam byte menjadi data dalam karakter. Ini memperluas kelas abstrak Reader . InputS
C Manajemen file File dapat digunakan untuk menyimpan sejumlah besar data persisten. Seperti banyak bahasa lain, C menyediakan fungsi manajemen file berikut, Pembuatan file Membuka file Membaca file Menulis ke file Menutup file Berikut ini adalah fungsi manajemen file terpenting yang tersedia di
Apa itu Java? Java dirilis oleh Sun Microsystem pada tahun 1995. Ini dikembangkan oleh James Gosling. Ini adalah bahasa pemrograman tujuan umum yang dirancang dengan tujuan khusus yang memungkinkan pengembang untuk menulis setelah dijalankan di mana saja. Aplikasi Java dikompilasi menjadi bytecode
Tanya Jawab Java 8 telah dirancang dengan tujuan khusus untuk membantu siswa dan profesional mempersiapkan berbagai Ujian Sertifikasi dan Wawancara Kerja . Bagian ini menyediakan kumpulan contoh Pertanyaan Wawancara dan Pertanyaan Pilihan Ganda (MCQ) yang berguna beserta jawabannya dengan penjelasan