2016-02-16 63 views
0

我試圖將字節數組轉換爲具有以下代碼段的字符串。但由於某些原因,當我的byte []轉換成字符串,它在文件中改變了一些內容從字節數組到字符串的數據轉換

代碼

public String convertToString(byte[] byteArr) 
    { 
    public static final int BYTE_MASK = 0xFF; 
    StringBuilder strBldr = new StringBuilder(); 

    for(int i = 0; i < byteArr.length; i++) { 
     strBldr.append((char) (byteArr[i] & BYTE_MASK)); 
    } 

    return strBldr.toString(); 
    } 

我已經添加了兩個文件名爲預期的文件,並生成數據文件

預期文件:

00 39 00 00 46 91 00 00 00 17 16 02 16 16 39 31 
0b 00 3a 00 78 09 60 40 26 64 50 41 50 20 48 49 
47 20 52 4d 20 20 04 00 80 4b 02 00 a0 ea 01 00 
64 00 ec 05 00 00 00 00 00 

生成的文件:

00 39 00 00 46 3f 00 00 00 17 16 02 16 16 39 31 
0b 00 3a 00 78 09 60 40 26 64 50 41 50 20 48 49 
47 20 52 4d 20 20 04 00 3f 4b 02 00 a0 ea 01 00 
64 00 ec 05 00 00 00 00 00 

如果你看到這兩個文件,則有望文件數據應爲「91」(第一行,第六元素)和它在生成的文件3F。

任何想法如何得到正確的輸出?

+2

嘗試:新的字符串(byteArr); ? – Stultuske

+1

你如何將字節轉換回字節[]? – Ferrybig

+0

[Java Byte Array to String to Byte Array]可能重複(http://stackoverflow.com/questions/6684665/java-byte-array-to-string-to-byte-array) – SomeJavaGuy

回答

0

嘗試:

 String example = "This is an example"; 
     byte[] bytes = example.getBytes(); 
     System.out.println("Text : " + example); 

     String s = new String(bytes); 
     System.out.println("String : " + s); 

輸出:

文本:[B @ 187aeca

字符串:這是一個例子

+1

您是否使用問題中提供的數據嘗試過? – Thilo

相關問題