Nasıl Java bayt bir dizi başlatmak mı? | Netgez.com
SORU
26 HAZİRAN 2012, Salı


Nasıl Java bayt bir dizi başlatmak mı?

Java byte dizisi şeklinde bazı sabit değerler (olacak biçimde) saklamak için, ve bu statik bir dizi başlatmak için en iyi yolu ne olacağını merak ediyorum. Bu şu anda nasıl yaptığımı, ama daha iyi bir yolu olmalı gibi hissediyorum.

private static final byte[] CDRIVES = new byte[] { (byte)0xe0, 0x4f, (byte)0xd0,
    0x20, (byte)0xea, 0x3a, 0x69, 0x10, (byte)0xa2, (byte)0xd8, 0x08, 0x00, 0x2b,
    0x30, 0x30, (byte)0x9d };
private static final byte[] CMYDOCS = new byte[] { (byte)0xba, (byte)0x8a, 0x0d,
    0x45, 0x25, (byte)0xad, (byte)0xd0, 0x11, (byte)0x98, (byte)0xa8, 0x08, 0x00,
    0x36, 0x1b, 0x11, 0x03 };
private static final byte[] IEFRAME = new byte[] { (byte)0x80, 0x53, 0x1c,
    (byte)0x87, (byte)0xa0, 0x42, 0x69, 0x10, (byte)0xa2, (byte)0xea, 0x08,
    0x00, 0x2b, 0x30, 0x30, (byte)0x9d };
...
and so on

Daha az etkili olabilir, ama daha temiz görünecek kullanabileceğim bir şey var mı? örneğin:

private static final byte[] CDRIVES =
    new byte[] { "0xe04fd020ea3a6910a2d808002b30309d" };

CEVAP
26 HAZİRAN 2012, Salı


Bir fonksiyonu byte[], hexa bir dize dönüştürme kullanarak yapabilir

byte[] CDRIVES = hexStringToByteArray("e04fd020ea3a6910a2d808002b30309d");

İşlevi Convert a string representation of a hex dump to a byte array using Java? Dave L tarafından tanımlanan kullanmanızı öneririm

Maksimum okunabilirlik için Burada: İ Ekle

public static byte[] hexStringToByteArray(String s) {
    int len = s.length();
    byte[] data = new byte[len / 2];
    for (int i = 0; i < len; i  = 2) {
        data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
                               Character.digit(s.charAt(i 1), 16));
    }
    return data;
}

Eğer CDRİVES izin verirsen static final, performans düşüşü ilgisi yoktur.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AÄžUSTOS 2013
  • Michael Lummio

    Michael Lumm

    25 Mayıs 2007
  • tsweeney79

    tsweeney79

    21 Ocak 2008