簡體   English   中英

Java:將字符串轉換為字節數組,然后轉換為長值,反之亦然

[英]Java: Conversion of String to byte array, then to long value and vice versa

基本上,我正在尋找 .NET 的BitConverter

我需要從字符串中獲取字節,然后將它們解析為長值並存儲它。 之后,讀取長值,解析為字節數組並創建原始字符串。 我如何在 Java 中實現這一點?

編輯:有人已經問過類似的問題。 我看起來更像是示例,然后是 javadoc 參考...

String有一個getBytes方法。 您可以使用它來獲取字節數組。

要將字節數組存儲為 long,我建議您將字節數組包裝在ByteBuffer並使用asLongBuffer方法。

要從字節數組中取回String ,您可以使用String(byte[] bytes)構造函數。

String input = "hello long world";

byte[] bytes = input.getBytes();
LongBuffer tmpBuf = ByteBuffer.wrap(bytes).asLongBuffer();
    
long[] lArr = new long[tmpBuf.remaining()];
for (int i = 0; i < lArr.length; i++)
    lArr[i] = tmpBuf.get();
    
System.out.println(input);
System.out.println(Arrays.toString(lArr));
// store longs...
    
// ...load longs
long[] longs = { 7522537965568945263L, 7955362964116237412L };
byte[] inputBytes = new byte[longs.length * 8];
ByteBuffer bbuf = ByteBuffer.wrap(inputBytes);
for (long l : longs)
    bbuf.putLong(l);
System.out.println(new String(inputBytes));

請注意,您可能想要存儲一個額外的整數,告訴長數組實際存儲的字節數,因為字節數可能不是 8 的倍數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM