我在解释文件时遇到问题。该文件的构建如下:
“姓名”-@-“日期”-@-“作者”-@-“签名”
签名是一个字节数组。当我读回文件时,我将其解析为 String 并拆分它:
myFileInpuStream.read(fileContent);
String[] data = new String(fileContent).split("-@-");
如果我查看 var fileContent,我发现字节都很好。但是当我尝试获取签名字节数组时:
byte[] signature= data[3].getBytes();
有时我会得到错误的 63 值。我尝试了一些解决方案:
new String(fileContent, "UTF-8")
但没有运气。有人可以帮忙吗?签名不是固定长度,因此我无法对其进行硬编码...
一些额外的信息:
原始签名:
[48、45、2、21、0、-123、-3、-5、-115、84、-86、26、-124、-112、75、-10、-1、-56、40、13 , -46, 6, 120, -56, 100, 2, 20, 66, -92, -8, 48, -88, 101, 57, 56, 20, 125, -32, -49, -123, 73 , 96, 76, -82, 81, 51, 69]
文件内容(阅读后的变量):
... 48、45、2、21、0、-123、-3、-5、-115、84、-86、26、-124、-112、75、-10、-1、-56、40 , 13, -46, 6, 120, -56, 100, 2, 20, 66, -92, -8, 48, -88, 101, 57, 56, 20, 125, -32, -49, -123 , 73, 96, 76, -82, 81, 51, 69]
签名(拆分和getBytes()之后):
[48、45、2、21、0、-123、-3、-5、63、84、-86、26 、 -124、63、75、-10、-1、-56、40、13、- 46、6、120、-56、100、2、20、66、-92、-8、48、-88、101、57、56、20、125、-32、-49、-123、73、96 , 76, -82, 81, 51, 69]