在将C#中的文件解析为Java之前将其转换为字节数组
如果这个问题的措辞非常糟糕,请原谅,但我会尽我所能解释(给我)一个相当复杂的情况。我完全意识到,我在这里有点不知所措,经验丰富,但我希望你们中的一位能帮助我 我带着这一点来到你们更光明的头脑中,因为我处于一个完全的常规中,在隧道的尽头似乎没有光 我想用在将C#中的文件解析为Java之前将其转换为字节数组,java,c#,arrays,json,byte,Java,C#,Arrays,Json,Byte,如果这个问题的措辞非常糟糕,请原谅,但我会尽我所能解释(给我)一个相当复杂的情况。我完全意识到,我在这里有点不知所措,经验丰富,但我希望你们中的一位能帮助我 我带着这一点来到你们更光明的头脑中,因为我处于一个完全的常规中,在隧道的尽头似乎没有光 我想用C将一个文件转换成byte数组,因为byte数组将作为参数发送到Java方法中 所以我想: byte[] a = System.IO.File.ReadAllBytes(filePathHere); 现在,这是可行的,世界上一切都是和平的。但是当
C
将一个文件转换成byte
数组,因为byte
数组将作为参数发送到Java
方法中
所以我想:
byte[] a = System.IO.File.ReadAllBytes(filePathHere);
现在,这是可行的,世界上一切都是和平的。但是当我尝试将a
发送到Java
方法时,问题就出现了
当我试图通过JSON
将其发送到我的Java
文件时,它抛出的错误是:
org.codehaus.jackson.JsonParseException:数字值(181)为
Java字节的范围
现在,在一些(徒劳的)谷歌搜索之后,我得出结论,C#
认为将文件转换为字节
数组是有帮助的,该数组包含值介于0
和255
之间的项
虽然Java
希望得到一个参数,但我的方法是一个字节
数组,其值从-128
到128
在理想的情况下,如果你们中的任何人知道如何将我的文件C
转换为字节
数组,其值从-128
到128
,我会非常喜欢
然而,如果这实际上是不可能的,我也愿意在Java
中,将值介于0
和255
之间的byte
数组转换为更理想的-128
格式
我所描述的是不可能的,还是有人知道如何做到这一点
我非常感谢任何人能提供的帮助。越详细,越友好,就越好 这是因为Java只处理有符号的数字原语,而c#
字节
s是无符号8位整数
如何在Java端解决:
- 您可以在整数/短数组中读取它,然后逐字节强制转换为字节数组
- 如果需要处理[0-255]区间内的数字,应使用整数或短数组
- 使用
()数组[-128到127]sbyte
File.ReadAllBytes(filePathHere).Select(b=>(sbyte)b).ToArray();
顺便说一句,文件应该是由无符号字节组成的,因此没有必要讽刺(“C#认为这很有帮助”)。只是Java没有适当的数据类型来处理它 您可以看到:迭代c#byte数组并将该位置的字节转换为带符号的int有帮助吗?我不熟悉这样做,但偶然发现了这篇msdn文章:nevermind,看起来是mo.ashfaq处理的。阅读该文件时,您可以看到以下内容: