java.uti에서 새로운 내용은 16 진수 값을 갖는 텍스트 문서를 라인 단위로 읽으려고하고 바이트 배열로 변환하려고합니다. 하지만,도 8 (D), 11, 0, 같은 -28 대신 228 이 방법이 변환 오류를 극복 할 수 E4에 대한 잘못된 값을 얻는 IM 파싱 E4와 같은 16 진법 값 ....자바에서 16 진수를 바이트로 변환
FileInputStream fstream = new FileInputStream("C:/Users/data.txt");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(newInputStreamReader(in,"UTF-8"));
byte[] bytes = new byte[1024];
String str;
int i=0;
while ((str = br.readLine()) != null)
{
bytes[i]= (byte) (Integer.parseInt(str,16) & 0xFF);
i++;
}
byte[] destination = new byte[i];
System.arraycopy(bytes, 0, destination, 0, i);
br.close();
return destination;
바이트의 Java가 서명됩니다. 그것의 범위는 -'[-128, 127]'이고,'127' 이후의 값은 음수쪽으로 가게됩니다. 따라서 '228'은 '-28'입니다. –
DataInputStream을 사용하여 텍스트를 읽지 마십시오. http://vanillajava.blogspot.co.uk/2012/08/java-memes-which-refuse-to-die.html –