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!!

avatar ragilsatria
@ragilsatria

4 Kontribusi 1 Poin

Diperbarui 5 tahun yang lalu

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

avatar ma4m
@ma4m

97 Kontribusi 39 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban