Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将字节转换为int并与值进行比较_Java_Scala - Fatal编程技术网

Java 如何将字节转换为int并与值进行比较

Java 如何将字节转换为int并与值进行比较,java,scala,Java,Scala,所以我有一个值FFD8FFE0(jpg/jpeg签名),我想检查上传的文件是否为jpg/jpeg,但它返回false val param = new FileInputStream(f) val cnt = param.available val bytes = Array.ofDim[Byte](cnt) println(param.read(bytes)==0xFFd8FFe0) 如果你真的不想使用 , 下面是如何检查Java中的前4个字节: InputStream stream = ne

所以我有一个值
FFD8FFE0
(jpg/jpeg签名),我想检查上传的文件是否为jpg/jpeg,但它返回false

val param = new FileInputStream(f)
val cnt = param.available
val bytes = Array.ofDim[Byte](cnt)
println(param.read(bytes)==0xFFd8FFe0)

如果你真的不想使用 , 下面是如何检查Java中的前4个字节:

InputStream stream = new FileInputStream("example.jpg");
byte[] bytes = new byte[4];
stream.read(bytes);
byte[] expectedBytes = { (byte) 0xFF, (byte) 0xD8, (byte) 0xFF, (byte) 0xE0 };
System.out.println(Arrays.equals(expectedBytes, bytes));
在Scala中也是如此:

val stream = new FileInputStream("example.jpg")
val bytes = Array.ofDim[Byte](4)
stream.read(bytes)
val expectedBytes = Array(0xFF.toByte, 0xD8.toByte, 0xFF.toByte, 0xE0.toByte)
println(Arrays.==(expectedBytes, bytes)) 

在这里检查一个好的解决方案:您检查的是
read
调用的结果,而不是读取的数据。但我在回答之前的问题时已经为您提供了代码,所以请不要继续问同样的问题。我想使用BufferedInputStream和DataInputStream,而只使用FileInputStream