Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

[ask] membuat file berdasarkan nilai bit

tanya om, misalkan ane punya nilai bit yang direpresentasikan dalam bentuk string array dan disimpan dalam variabel pikselBit[]:

pikselBit[0] = 101
pikselBit[1] = 0
pikselBit[2] = 100
pikselBit[3] = 111
pikselBit[4] = 0
pikselBit[5] = 0
pikselBit[6] =11000
pikselBit[7] = 11001
pikselBit[8]  = 0
pikselBit[9] = 0

  jumlah bit = 24/8 = 6 bytes.

gimana caranya membuat file dengan ukuran  6 bytes berdasarkan nilai bit diatas? 
ane butuh keyword/method apa yang digunakan untuk membuat file tersebut, berdasarkan jumlah bit yang ada?

mohon bantuannya om. thanks..
Tagged:

Comments

  • edited September 2014
    elo sambung dulu semuanya jadi 1 string utuh supaya bisa di loop pake while

    potong string dari awal per 8
    konversi jadi data binari
    simpan ke file jadi 1 byte

    lanjut terus sampai string habis diproses
  • untuk konversi ke data binari itu yg pake byte[] kan bang?
  • wah thanks bang petunjuknya. udah ane coba dan berhasil. 
    kalo caranya nge read file yang udah ane buat tadi gimana bang?
    ane coba pake readInt() ko ga bisa??
  • lha elo nulisnya pake apa ?
  • ane pake fileWriter bang..
  • edited September 2014
    http://www.tutorialspoint.com/java/java_files_io.htm
    ada contoh baca/tulis (copy file) byte per byte,
    bisa elo tiru prosesnya buat butuh elo

    tapi kalo mau pake proses kebalikan dari fileWriter :
    http://www.tutorialspoint.com/java/java_filereader_class.htm
  • ane punya prtnyanya lg bang. mohon dibantu ya..:D 
    writeBitDemo3.java
    public class writeBitDemo3 {
    public static void main(String[] argv) throws Exception {
       FileWriter fw = new FileWriter("bitDemo3.dat");
       String strs[] = { "10101001", "11001100", "00100100", "00100" };
       System.out.println("Writing file ...");
       for (int i = 0; i < strs.length; i++) {
        fw.write(Integer.parseInt(strs[i], 2)); 
       }
       System.out.println("Finished ...");
       fw.close();
     }
    }

    readBitDemo3.java
    public class readBitDemo3 {
    public static void main(String[] args) throws IOException{
    FileReader fr = new FileReader("bitDemo3.dat"); 
    int ch;
       do {
         ch = fr.read();
         if (ch != -1){
        System.out.println(Integer.toBinaryString(ch));
         }
       } while (ch != -1);
       fr.close();
    }
    }

    output
    10101001 
    11001100 
    100100 
    100

    sdgkn output yg sy ingin adlh
    10101001 
    11001100 
    00100100 
    000100



  • edited September 2014
    [1]
    5 ... int
    "110" ... toBinaryString(5)
    110 ... parseInt("110" , 10)
    "00000110" ... format("%08d" , 110)

    http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html

    [2]
    5 ... int
    "110" ... toBinaryString(5)
    "00000110" ... "00000000".substring("110".length()) + "110"



    btw, ini bakal jadi masalah :
    String strs[] = { "10101001", "11001100", "00100100", "00100" };

    yg ditulis itu selalu byte, harus 8 bit
    jangan dibiarkan ada panjang yg beda / kurang
    harus disamakan
    "00100" itu harus jadi "00100" + "000"

    supaya waktu dibaca ulang, bisa jadi "100000"
    ditambah padding jadi "00100000"
    "000" terakhir lebih mudah diabaikan kalo hitungan elo berdasar panjang string 8 + 8 + 8 + 5

    dibanding yg terbaca jadi "100"
    ditambah padding jadi "00000100"
  • iya bang memang pas ane write file, ane udah bagi2 string per 8.
    nah pas ane baca ulang string yg berawalan 0 jadi ilang. 
    "00100100"(nilai yg ditulis)  -->  100100 (nilai pas dibaca ulang)

    nah kalo nambah padding itu yg pake decimalFormat kn bang?
  • itu pan sudah gw tulis 2 cara bikin padding
  • bang jerapah tolong bantu lagi... tolong jelasin yg bawah ini:
    supaya waktu dibaca ulang, bisa jadi "100000"
    ditambah padding jadi "00100000"
    "000" terakhir lebih mudah diabaikan kalo hitungan elo berdasar panjang string 8 + 8 + 8 + 5

    karena ane udah nambah padding, pas read file maka hasilnya akan 8 + 8 + 8 + 8. 
    nah gimana logikanya supaya hasilnya tetep 8+8+8+5.
  • edited September 2014
    panjang total string juga mesti elo simpan di file
    jadi elo tau panjang string aslinya berapa

    misal panjang string asli cukup elo simpan jadi 4 byte di akhir file
  • oke bang thanks a lot.
Sign In or Register to comment.