0% menganggap dokumen ini bermanfaat (0 suara)
485 tayangan

Data Stream

Sistem terdistribusi direpresentasikan oleh Java menggunakan streams yang menangani komunikasi data pada level byte antara aplikasi dan jaringan. Streams fleksibel untuk berbagai sumber data dan dapat digunakan untuk membaca dan menulis data."

Diunggah oleh

Raka Adhitama
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
485 tayangan

Data Stream

Sistem terdistribusi direpresentasikan oleh Java menggunakan streams yang menangani komunikasi data pada level byte antara aplikasi dan jaringan. Streams fleksibel untuk berbagai sumber data dan dapat digunakan untuk membaca dan menulis data."

Diunggah oleh

Raka Adhitama
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 30

SISTEM TERDISTRIBUSI

Data Stream

Overview
Komunikasi melalui jaringan, dengan files,
dan bahkan antar aplikasi
direpresentasikan oleh Java menggunakan
streams.

Apa sih streams itu


sebenarnya?
Komunikasi level-byte direpresentasikan oleh java oleh stream
data (data streams), dimana informasi data dalam bentuk bytes
dikirim dan diterima

-1-

Apa sih streams itu


sebenarnya?
Dalam merancang sistem, harus dipilih stream yang benar.
Contoh: bytes mungkin diubah dari satu bentuk ke bentuk lainnya
(seperti bilangan), atau suatu bytes stream mungkin
diinterpretasikan sebagai urutan karakter.
Dalam Java, streams cukup fleksibel, one-size-fits-all cukup
mudah ditukar-gantikan, dan dapat diterapkan pada streamstream lainnya

-2-

Bagaimana Stream bekerja


Stream menyediakan komunikasi data pada level byte, dan digunakan
untuk menulis dan membaca.
Abstract
class

Membaca dari Input Stream


Low-level Input Stream

Kegunaan Stream

ByteArrayInputStream

Membaca data dalam bentuk byte dari


suatu larik memori

FileInputStream

Membaca data dalam bentuk byte dari


suatu file di file sistem lokal

PipeInputStream

Membaca data dalam bentuk byte dari


suatu thread pipe

StringBufferInputStream

Membaca data dalam bentuk byte dari


suatu String

SequenceInputStream

Membaca data dalam bentuk byte dari dua


atau lebih stream level-rendah, berpindah
dari satu stream ke stream berikutnya
ketika menemui akhir dari stream

System.in

Membaca data dalam bentuk byte dari

-1-

Membaca dari Input Stream

-2-

I/O Streams

Kelas-kelas yang menangani I/O Streams ada


di dalam paket java.io
I/O Stream mewakili berbagai macam sumber
dan tujuan seperti disk files, devices, program
lainnya, dan larik memori sebagai

Sumber input
Tujuan output

I/O Streams

Stream adalah urutan


data
Program menggunakan

input stream untuk


membaca data dari suatu
sumber, satu item sekali
Output stream untuk
menulis data ke suatu
tujuan, satu item sekali

Byte Streams

Digunakan untuk menangani I/O 8-bit


bytes
Menggunakan FileInputStream dan
FileOutputStream untuk mendemokan
Byte Streams
Contoh: CopyBytes.java

Byte Streams

Byte Streams

Selalu tutup streams (close)

setiap selesai menggunakan Byte Streams, maka harus ditutup


untuk menghindari resource leaks

Merupakan suatu jenis low-level I/O yang harus dihindari.

karena file yg digunakan pd demo ini berisi karaktek text,


sebaiknya menggunakan Streams karakter merupakan jenis
Streams lain untuk tipe data yg lebih kompleks.
Byte Streams sebaiknya hanya utk I/O paling primitive
Kita bicarakan di sini karena seluruh tipe Streams dibangun di
atas byte streams

Character Streams

Platform Java menyimpan karakter menggunakan konvensi


Unicode.

Character stream I/O secara otomatis menangani


penterjemahan ini

CopyCharacters.java
Seluruh character streams classes diturunkan dari Reader
dan Writer. Stream classes yg spesial pada I/O file adalah

FileReader
FileWriter

Line-oriented I/O

Character I/O biasanya terjadi pada unit yg lebih


besar dibanding karakter tunggal
Di sin satu unit adalah satu baris yg diakhiri
dengan urutan (\r\n)
Dalam hal ini digunakan

BufferedReader
PrintWriter

CopyLines.java

Buffered Streams

Contoh2 sebelumnya masih


menggunakan unbuffered I/O
Suatu program menggunakan wrapper
untuk mengubah unbuffered stream
menjadi buffered stream

inputStream = new BufferedReader(new


FileReader("xanadu.txt"));

outputStream = new BufferedWriter(new


FileWriter("characteroutput.txt"));

Buffered Streams

Ada 4 buffered stream class yg untuk


membungkus unbuffered stream

Membuat buffered byte streams


BufferedInputStream
BufferedOutputStream

Membuat buffered character streams


BufferedReader
BufferedWriter

Scanning

Objek bertipe scanner berfungsi untuk


memecah input ke dalam token
Secara default menggunakan spasi
ScanSum.java

Membaca dari Input Stream

Class java.io.InputStream memiliki metode-metode yang dapat anda lihat di


Internet misal di sini:
https://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html
available()Returns the number of bytes that can be read from this input stream
without blocking.close()Closes this input stream and releases any system
resources associated with the stream.mark(int)Marks the current position in
this input stream.markSupported()Tests if this input stream supports
themarkandresetmethods.read()Reads the next byte of data from this input
stream.read(byte[])Reads up tob.lengthbytes of data from this input stream
into an array of bytes.read(byte[], int, int)Reads up tolenbytes of data from
this input stream into an array of bytes.reset()Repositions this stream to the
position at the time themarkmethod was last called on this input stream.skip
(long)Skips over and discardsnbytes of data from this input stream.

-3-

Membaca dari Input Stream

Contoh penggunaan suatu input stream


level-rendah untuk menampilkan isi
suatu file.

Suatu byte dibaca dari file kemudian


ditampilkan di monitor
FileInputStreamDemo.java
-4-

Membaca dari Input Stream

Bagaimana FileInputStreamDemo bekerja

Membuat
objek
FileInputStr
eam

Membaca byte data


pertama dan meauk
ke dalam kalang
sampai menemukan
akhir suatu file

-5-

Menulis ke suatu Output


Stream

Seperti halnya input stream,


data dikomunikasikan secara
berurutan; byte pertama
akan dikirim pertama (FIFO)

-1-

Menulis ke suatu Output


Stream
Low-level Input
Stream

Kegunaan Stream

ByteArrayOutputStream

Menulis data dalam bentuk byte ke suatu larik memori

FileOutputStream

Menulis data dalam bentuk byte ke suatu file di file sistem


lokal

PipeOutputStream

Menulis data dalam bentuk byte ke pipa komunikasi, yang


terhubung ke java.io.PipeInputStream.

StringBufferOutputStream

Menulis data dalam bentuk byte ke suatu buffer String

System.err

Menulis data dalam bentuk byte ke sistem error pada konsol


pengguna, juga dikenal sebagai error standard

System.out

Menulis data dalam bentuk byte ke konsol pengguna


(monitor), juga dikenal sebagai output standard

-2-

Menulis ke suatu Output


Stream

Class java.io.OutputStream memiliki metode-metode yang dapat


anda lihat di Internet misal di sini:
https://docs.oracle.com/javase/7/docs/api/java/io/
OutputStream.html
close()Closes this output stream and releases any system
resources associated with this stream.flush()Flushes this output
stream and forces any buffered output bytes to be written out.
write(byte[])Writesb.lengthbytes from the specified byte array to
this output stream.write(byte[], int, int)Writeslenbytes from the
specified byte array starting at offsetoffto this output stream.
write(int)Writes the specified byte to this output stream.
-3-

Menulis ke suatu Output


Stream

Contoh penggunaan suatu output stream


level-rendah untuk menyalin isi dari
suatu file ke file yang lain.

Class akan membuat suatu file jika tidak


ada, atau menimpali jika sudah ada.
FileOutputStreamDemo.java
-4-

Menulis ke suatu Output


Stream
Membuat file
jika tidak
ada, atau
menimpali
jika sudah
ada
Sekali file terbuka,
maka dapat
dituliskan dengan
memanggil
OutputStream.write

-5-

I/O dari command line:


Standard Streams

Standard Streams banyak digunakan oleh


sistem operasi

Membaca input dari keyboard dan menampilkan ke


layar

Platform Java mendukung tiga standard streams

Standard Input diakses melalui System.in


Standard Output diakses melalui System.out
Standard Error diakses melalui System.err

I/O dari command line:


Standard Streams

System.in adalah suatu byte stream tanpa


memiliki fitur karakter
Untuk dapat digunakan sebagai Standard
Input sebagai stream karakter perlu
dibungkus dengan InputStreamReader

I/O dari command line:


Console

Alternatif Standard Input yg lebih advance


Console menggunakan stream karakter

Berguna untuk menangani password

Untuk menggunakannya harus memanggil

System.console()

I/O dari command line:


Console: contoh

Coba mendapatkan objek, jika tidak tersedia batalkan


Panggil Console.readLine untuk meminta nama login user
Panggil Console.readPassword untuk meminta password user
Panggil verify untuk mengkonfirmasi autoritas user utk mengubah
password ;)
Ulangi langkah berikut sampai user memasukkan password yg
sama dua kali:

Panggil Console.readPassword dua kali


Jika sudah dua kali dan benar, maka panggil change utk mengubah
password
Timpali kedua passwords dengan blanks

Timpali password lama dengan blank

Data Streams

Mendukung I/O biner tipe data primitive (boolean, char, byte,


short, int, long, float, dan double) termasuk juga String.
Seluruh stream data mengimplementasikan interface
DataInput dan DataOutput.

DataInputStream
DataOutputStream

Anda mungkin juga menyukai