Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Klik link berikut untuk informasi 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

Baca 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.