Tag: byte

Java:InputStream read()返回一个大于127的字节?

我有这段代码: InputStream is = socket.getInputStream(); int b; while ((b = is.read()) != -1) { System.out.println(b); } 一个字节,其范围是-128直到+127 。 但其中一个打印字节是210 。 这是将读取byte转换为int吗? (这样negatif byte变成了一个positif int ) 如果是这样,我可以通过将int转换为byte来做同样的事情(使用OutputStream )吗? 谢谢, 马亭

在Java中从short转换为byte,反之亦然

我正在尝试将短路转换为2个字节…然后从这2个字节尝试获得相同的短路值。 为此,我写了这段代码: short oldshort = 700; byte 333= (byte) (oldshort); byte byte2= (byte) ((oldshort >> 8) & 0xff); short newshort = (short) ((byte2 << 8) + byte1); System.out.println(oldshort); System.out.println(newshort); 对于700(oldshort)的值,newhosrt是444.经过一些测试后,它看起来像这样的代码只适用于某些值。 就像…如果oldshort = 50,那么它将正常工作..但如果它是-200,或更大的值超过127(我认为)它不起作用。 我想有签名的字节,二的补码值等问题……但我无法弄清楚如何解决它。 任何的想法?? 在java中以任何本地方式执行此操作? 提前致谢!

在Java中将字节数组(byte )转换为Image

我有一个byte[] ,我想转换为图像并在标签中显示图像。 byte []是jpeg 2000格式。 我已经尝试了下面的代码,但它返回null: InputStream in = new ByteArrayInputStream(bytearray); BufferedImage image = ImageIO.read(in); 图像值返回null 。 我希望能够在如下标签中显示图像: jLabel.setIcon(new ImageIcon(image)); 谢谢

java字节是否与C#字节相同?

如果输入参数是字节数组 – byte [],则dll中的native方法在java中工作。 如果我们使用c#中的相同方法,则抛出EntryPointNotFoundException。 是因为java和c#中的byte []是不同的东西? 如果是这样我应该如何使用c#中的本机函数?

BigInteger到byte

我需要将Java BigInteger实例转换为以字节为单位的值。 从API中,我得到了这个方法toByteArray() ,它返回一个包含这个BigInteger的二进制补码表示的byte []。 由于我的所有数字都是正128位(16字节)整数,所以我不需要2位补码forms给我128位+符号位(129位)…… 有没有办法直接从BigInteger获得标准(没有二进制补码forms)表示? 如果没有,我怎么能正确移位整个byte [17]数组以丢失符号位以获得一个byte [16]数组?

如何将整数转换为Java中的字节?

我知道Java不允许无符号类型,所以我想知道它如何将整数转换为一个字节。 假设我有一个值为255的整数a,我将整数转换为一个字节。 值是否以字节11111111表示? 换句话说,将值更多地视为带符号的8位整数,还是直接复制整数的最后8位?

在Java 8中,是否有ByteStream类?

Java 8为double , int和long提供了Stream : DoubleStream , IntStream和LongStream 。 但是,我在文档中找不到等效的byte 。 Java 8是否提供ByteStream类?