Writeable Stream
Dalam materi sebelumnya, kita telah mempelajari teknik stream (readable stream) untuk membaca berkas. Apakah kalian menyadari bahwa metode stream juga dapat digunakan untuk menulis berkas? Metode ini dikenal sebagai writable stream.
Untuk membuat writable stream dalam menulis berkas gunakanlah method createWriteStream() dari core module fs.
const fs = require('fs');
const writableStream = fs.createWriteStream('output.txt');
Fungsi ini menerima satu argumen yakni alamat berkas untuk menyimpan hasil data yang dituliskan. Jika berkas output tidak ada, itu akan dibuat secara otomatis; namun, jika ada, data sebelumnya akan tertimpa. Kita harus berhati-hati.
Lalu untuk menuliskan data pada writable stream, gunakan method write().
const fs = require('fs');
const writableStream = fs.createWriteStream('output.txt');
writableStream.write('Ini merupakan teks baris pertama!\n');
writableStream.write('Ini merupakan teks baris kedua!\n');
writableStream.end();
Method end() digunakan untuk menandakan akhir dari writable stream sekaligus bisa digunakan sebagai penulisan writeable terakhir.
const fs = require('fs');
const writableStream = fs.createWriteStream('output.txt');
writableStream.write('Ini merupakan teks baris pertama!\n');
writableStream.write('Ini merupakan teks baris kedua!\n');
writableStream.end('Akhir dari writable stream!');
Kode di atas akan menghasilkan output.txt dengan data seperti ini:
Ini merupakan teks baris pertama!
Ini merupakan teks baris kedua!
Akhir dari writable stream!
Latihan: Stream
Setelah kita belajar teknik stream yang dapat dibaca dan dapat ditulis, sekarang saatnya untuk menerapkan apa yang telah kita pelajari.
Kita akan kombinasikan kedua teknik tersebut untuk membuat program membaca teks dan memodifikasinya melalui teknik stream.
Silakan buat folder baru dengan nama stream. Di dalamnya buat dua berkas baru dengan nama index.js dan input.txt.
Di dalam masing-masing berkas, tuliskan kode/teks berikut:
- input.txt
- index.js
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
/**
* TODO:
* Buatlah program untuk membaca teks input.txt dan menuliskannya ulang pada berkas output.txt
* menggunakan teknik readable stream dan writable stream.
*/
Seperti yang tertera pada berkas index.js, tugas Anda yaitu untuk membuat program membaca dan menulis ulang teks melalui stream dengan ketentuan berikut:
1. Teks yang dibaca oleh readable stream memiliki ukuran 15 karakter tiap bagiannya. Tentukan nilai
highWaterMark-nya.
2. Tulis ulang teks dengan menggunakan teknik writable stream pada berkas output.txt. Untuk tiap
bagian teks yang dibaca melalui readable stream, pisahkan dengan baris baru (‘\n’).
Bila TODO selesai Anda kerjakan, maka eksekusi berkas index.js dengan menggunakan perintah:
node ./stream/index.js
Yang berisikan teks berikut:
Lorem ipsum dol
or sit amet, co
nsectetur adipi
scing elit, sed
do eiusmod tem
por incididunt
ut labore et do
lore magna aliq
ua. Ut enim ad
minim veniam, q
uis nostrud exe
rcitation ullam
co laboris nisi
ut aliquip ex
ea commodo cons
equat. Duis aut
e irure dolor i
n reprehenderit
in voluptate v
elit esse cillu
m dolore eu fug
iat nulla paria
tur. Excepteur
sint occaecat c
upidatat non pr
oident, sunt in
culpa qui offi
cia deserunt mo
llit anim id es
t laborum.
null
Tips: Anda bisa gunakan method
path.resolve(__dirname, 'notes.txt');
Dari core modules path dalam menetapkan alamat berkas secara lengkap dan dinamis.
0 Komentar
Berkomentar dengan bijak