/**
* Title : Demo RandomAccessFile
* Deskripsi: Membuat aplikasi untuk membaca record transaksi penjualan barang dalam biner/heksa, menggunakan RandomAccessFile, dan menampilkannya ke console
*/
import java.io.*;
public class DemoRandomAccess {
static String namaFileInput = "transaksi.dat";
/** Main method */
public static void main(String args[]) {
try {
DemoRandomAccess random = new DemoRandomAccess();
random.bacaFileHex();
} catch (IOException ex) {
System.err.println(ex);
}
}
/** Method untuk membaca data binary/hexadesimal */
public void bacaFileHex() throws IOException {
File dataFile = new File(namaFileInput);
RandomAccessFile inputFile = new RandomAccessFile(dataFile, "r");
long b = inputFile.length();
long ptr = 0;
boolean eof = false;
int jumlahRecord = 1;
byte[] a = new byte[(int)inputFile.length()];
while (!eof) {
ptr = inputFile.getFilePointer();
int byteData = inputFile.read();
if(byteData == -1) {
eof = true;
}
// Memeriksa apakah byteData merupakan karakter asterisk ("*") dan sekaligus mencetak title untuk masing-masing record
else if(byteData == 42) {
// Mencetak title record
System.out.println("Data record ke-" + jumlahRecord);
System.out.println("---------------------");
// Mencetak kode barang
System.out.print("Kode barang \t :");
for(int k=0; k<3; k++){
inputFile.read(a);
cetakHasil(a, k);
} // Penutup for
inputFile.seek(ptr+4);
// Mencetak jumlah transaksi
System.out.print("\nJumlah transaksi : " + "");
for(int k=0; k<3; k++){
inputFile.read(a);
cetakHasil(a, k);
}
inputFile.seek(ptr+6);
System.out.print("\n\n");
jumlahRecord++;
} //Penutup else if
} // Penutup while
inputFile.close();
} // Penutup method void bacaFileHex
/** Method untuk mencetak hasil ke layar */
void cetakHasil(byte[] str, int indeks) {
String hexOutput = Integer.toHexString(str[indeks]);
if((int)str[indeks] < 10)
System.out.print("0" + hexOutput);
else if ((int)str[indeks] == 0)
System.out.print("00");
else
System.out.print(hexOutput);
} // Penutup method cetakHasil
}
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment