Postingan lainnya
bagaimana metode readUTF berkerja pada DataInputStream
berikut adalah kode saya
import java.io.DataInputStream;
import java.io.FileInputStream;
public class bacaDataPermanen {
public static void main(String[] args) {
// TODO Auto-generated method stub
String kalimat = "";
try {
FileInputStream berkasData = new FileInputStream("D:\\latjava\\hellokitty.dat");
DataInputStream masukan = new DataInputStream(berkasData);
kalimat = masukan.readUTF();
masukan.close();
berkasData.close();
}
catch(Exception e) {
}
System.out.println(kalimat);
}
}
file yang ada di hellokitty.dat
(line 1) NAMA SAYA
(line 2) YA SIAPA
hasil eksekusi
NAMA SAYA
pertanyaan saya, kenapa program saya hanya membaca data awal saja tidak termasuk data yang kedua? apakah readUTF hanya membaca data perline? bagaimana jika saya ingin membaca pada line baris tertentu atau semuanya?
terima kasih!!
1 Jawaban:
saya kurang mengerti JAVA, tapi saya mencoba cari dan menemukan link ini (https://www.tutorialspoint.com/java/io/datainputstream_readutf.htm). Disana saat membaca nya dilakukan loop dengan mengecek object nya masih tersedia atau tidak datanya, maksud nya yang bagian ini :
// create new data input stream
dis = new DataInputStream(is);
// available stream to be read
while(dis.available()>0) {
// reads characters encoded with modified UTF-8
String k = dis.readUTF();
// print
System.out.print(k+" ");
}
dia memakai while disana, jika diaplikasikan pada kode yang anda buat menjadi
DataInputStream masukan = new DataInputStream(berkasData);
while(masukan.available() > 0) {
kalimat = kalimat.concat(masukan.readUTF());
}
masukan.close();
berkasData.close();
System.Out.println(kalimat)
silahkan dicoba, coba post error nya disini jika ada error setelah dirunning