folder Tahribat.com Forumları
linefolder Java
linefolder Binary Dosyadan Okumak Ve Okuduğunu Anlamak (Java)



Binary Dosyadan Okumak Ve Okuduğunu Anlamak (Java)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    Sayın Müridler,

    Little Endian kodlanmış bir binary file var elimde. Bundan önce header kısmını okuyup bilgi edinmem sonra da o bilgiler ışığında kalan kısmı okumam lazım. Fakat byte byte okuma işi kafamı karıştırdı.

    Örneğin header 4-byte integer ile başlıyor. Bu 4 byte'ı BufferedInputStream kullanarak okumayı düşünüyorum. Sonrasında byte arrayda bunu gelen 4 byte'ı tutunca onun hangi integer'a eşdeğer olduğunu nasıl anlarım?

    Aynı problem string ve floating point için de var.

    İşin içinden çıkamadım, bi tutun elimden.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    up yapalım cevaplayacak biri çıkar herhalde koskoca tahribatta

     

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    bi kaç kere okudum anlamadım ya ben karıştırıyorum ya sen terimleri karıştırıyorsun

    4-byte integer ne demek? byte veri tipi max 255 e kadar gidiyor, kast ettiğin 4 bytelık veri mi? yoksa byte türünden bir veri mi yoksa 4 bit mi? ve integer bunun neresinde?

    sonra da string ve float için problem var demişsin bir byte dizinde ne işleri var bunların? yani sorun hiç açık değil ve çok karmaşık geldi.. 


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    whopper
    whopper's avatar
    Kayıt Tarihi: 26/Haziran/2008
    Erkek

    Hocam bende anlayamadim yazdiklarini Olayin byte kismina takilma nedenini anlayamadim.karakterler buffera byte olarak gidiyor.boyutlarindan cikarinimda mi bulunmak istiyorsun anlamadim? Senin byte mevzuuna takilmaman gerekiyor. Amacin sayilari bosluga dek okumak mi?

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    olayı çözdüm gibi

    ardışık byte'lar 65 00 00 00 olsun

    little endian olduğu için bunlar 00000065 şeklinde birleştirmemiz gerekiyor bu da ondalık sistemde 101 sayısına denk geliyor. Yanlışım varsa düzeltin.

    String için de zaten her byte bir karakter oluyormuş onu da çözdüm ama floating point'i çözemedim

    yine bu şekilde 4 byte'ı birleştirip bir floating point oluşturmam gerekiyor.

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    şimdi hocam dediğim gibi byte daki en büyük sayı 255 tir, şimdi sen 

    65 00 00 00 şeklinde bölüp

    000065 e de 101 dersen işler karışır. mesela o dizide gelen sayı 125 olsaydı 65 yerine

    0000125 bunu 10 luk sisteme 16 lık sisteme göre çevirmek mantıklı değil.. çünkü 16 lık sistem olduğunu nerden biliyorsun? 

    ayrıca 65 eğer bir karakter kodu ise bu ascii dir muhtemelen ve 65 in karşılığı da A dır

    belki bunlar fikir verebilir, çok açık yazmadığın için ne istediğini anlamadığımdan bir şeyler söylüyorum :))


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    http://www.darkfader.net/toolbox/convert/

    Integer, IPV4, color kısmında anlatmaya çalıştığım şey var byte dizisinin 12 15 16 28 olduğunu düşünelim (her byte 16lık tabanda yazılı).

    Integer olarak 672535826 sayısına denk geliyor little endian kodlamada.

    Bir de aynı şekilde 4 byte'ı kullanarak floatin point decode etmem gerekiyor. Onu beceremedim.

Toplam Hit: 1894 Toplam Mesaj: 7