Stream
Stream dapat didefinisikan sebagai urutan data, terdapat dua jeis streaming.- InputStream : digunakan untuk membaca data dari source.
- OutputStream : digunakan untuk menulis data ke tujuan.
Java menyediakan dukungan yang kuat namun fleksibel untuk mendukung I/O terkait dengan File dan jaringan tapi artikel ini meliputi fungsi yang sangat dasar yang berhubungan dengan stream dan I / O. Kita akan lihat contoh umum yang sering digunakan satu per satu:
Byte Streams
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(); } } } }Lalu buatlah file bernama input.txt lalu tuliskan kata dibawah ini.
Ini adalah test untuk copy file.Sebagai langkah berikutnya, mengkompilasi program di atas dan jalankan, yang akan menghasilkan dalam menciptakan output.txt file dengan isi yang sama seperti yang kita miliki di input.txt. Jadi mari kita menempatkan kode di atas dalam file CopyFile.java dan lakukan hal berikut:
$javac CopyFile.java $java CopyFile
Karakter Streams
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(); } } } }Lalu buatlah file bernama input.txt lalu tuliskan kata dibawah ini.
Ini adalah test untuk copy file.Sebagai langkah berikutnya, mengkompilasi program di atas dan jalankan, yang akan menghasilkan dalam menciptakan output.txt file dengan isi yang sama seperti yang kita miliki di input.txt. Jadi mari kita menempatkan kode di atas dalam file CopyFile.java dan lakukan hal berikut:
$javac CopyFile.java $java CopyFile
Standar Streaming
- Standard Input: ini digunakan untuk memberi makan data ke program pengguna dan biasanya keyboard digunakan sebagai masukan standar dan direpresentasikan sebagai System.in.
- Standard Output: ini digunakan untuk output data yang dihasilkan oleh program pengguna dan biasanya layar komputer digunakan untuk standar keluaran dan direpresentasikan sebagai System.out.
- Standard Error: ini digunakan untuk output data error yang dihasilkan oleh program pengguna dan biasanya layar komputer digunakan untuk stream kesalahan standar dan direpresentasikan sebagai System.err.
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("Masukan karakter, 'q' untuk berhenti."); char c; do { c = (char) cin.read(); System.out.print(c); } while(c != 'q'); }finally { if (cin != null) { cin.close(); } } } }
Masukkan karakter, 'q' untuk berhenti. 1 1 e e q q
Membaca dan Menulis File
FileInputStream
InputStream f = new FileInputStream("C:/java/hello");
File f = new File("C:/java/hello"); InputStream f = new FileInputStream(f);
No | Metode dengan Deskripsi |
---|---|
1 | public void close() throws IOException{}
Metode ini menutup stream file output. Melepaskan sumber daya sistem yang berhubungan dengan file tersebut. Melempar IOException.
|
2 | protected void finalize() throws IOException{}
Metode ini membersihkan koneksi ke file. Memastikan bahwa metode menutup stream file output yang disebut ketika tidak ada lagi referensi untuk aliran ini. Melempar IOException.
|
3 | public int read(int r) throws IOException{}
Metode ini membaca byte tertentu dari data dari InputStream.Mengembalikan sebuah int. Mengembalikan byte berikutnya data dan -1 akan dikembalikan jika itu akhir file.
|
4 | public int read (byte [] r) throws IOException {}
Metode ini membaca byte r.length dari masukan ke dalam sebuah array. Mengembalikan jumlah byte yang dibaca. Jika akhir file -1 akan dikembalikan.
|
5 | public int available() throws IOException {}
Memberikan jumlah byte yang dapat dibaca dari aliran input file ini.Mengembalikan sebuah int.
|
FileOutputStream
OutputStream f = new FileOutputStream("C:/java/hello")
File f = new File("C:/java/hello");OutputStream f = new FileOutputStream(f);
No | Metode dengan Deskripsi |
---|---|
1 | public void close() throws IOException{}
Metode ini menutup stream file output. Melepaskan sumber daya sistem yang berhubungan dengan file tersebut. Melempar IOException
|
2 | protected void finalize() throws IOException{}
Metode ini membersihkan koneksi ke file. Memastikan bahwa metode penutupan stream file output yang disebut ketika tidak ada lagi referensi untuk aliran ini. Melempar IOException.
|
3 | public void write(int w) throws IOExceptio {}
Metode ini menulis byte tertentu ke aliran output.
|
4 | public void write(byte [] w)
Menulis w.length byte dari array byte yang disebutkan ke OutputStream.
|
Contoh :
Berikut adalah contoh untuk menunjukkan 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"); } } }
Direktori Pada Java
Membuat Direktori
- mkdir() method menciptakan sebuah direktori, kembali benar pada keberhasilan dan palsu pada kegagalan. Kegagalan menunjukkan bahwa jalur yang ditetapkan dalam objek File sudah ada, atau direktori tidak dapat dibuat karena seluruh jalan belum ada.
- mkdirs() method menciptakan baik sebuah direktori dan semua parents direktori.
import java.io.File; public class CreateDir { public static void main(String args[]) { String dirname = "/tmp/user/java/bin"; File d = new File(dirname); // Membuat directory. d.mkdirs(); } }
Listing Direktori
import java.io.File; public class ReadDir { public static void main(String[] args) { File file = null; String[] paths; try{ // membuat file object baru file = new File("/tmp"); // array dari files dan directory paths = file.list(); // untuk setiap nama pada path array for(String path:paths) { // mencetak nama file dan nama directory System.out.println(path); } }catch(Exception e){ // jika terdapat error e.printStackTrace(); } } }
test1.txt test2.txt ReadDir.java ReadDir.class