在Java中实际使用字节数据类型

时间:2012-09-28 05:38:28

标签: java

除了事件之外,字节通过仅消耗8位存储来节省内存,而{em> 32位仅用于integer。它有什么其他实际用途?我在文中读到,当我们处理来自网络或文件的数据流时,它很有用。当您处理可能与Java的其他内置类型不直接兼容的原始二进制数据时,它们也很有用。任何人都可以用例子来解释这些吗?并陈述一些更实际的用途?

3 个答案:

答案 0 :(得分:3)

正如您所读,在读取位流

时,字节很有用

在告诉原因之前,lemme问你一个问题,一个字符代表多少位或字节? 8位/ 1字节。我希望你在这里得到了字节的原因。

在读取位流时使用字节的原因是当你读取一个字节中的流时,每次读取时,你的字节类型变量都会有一个字节的数据。即1个字符。因此,在阅读时,您将同时获得一个角色。

同样机器理解位,所以字节也派上用场,当从键盘,文件,数据流等任何输入读取时,我们更喜欢字节。类似地,当写入设备监视器时,输出流,文件等字节就派上用场了。

周围的所有内容都是10100010的倍数,因此当您不确定发送方的期望或接收方的期望时,请使用byte。

答案 1 :(得分:2)

通常字节数组用于序列化(到磁盘,网络流,内存流等)。一个简单的例子可能是这样的(取自here):

Object object = new javax.swing.JButton("push me");

try {
    // Serialize to a file
    ObjectOutput out = new ObjectOutputStream(new FileOutputStream("filename.ser"));
    out.writeObject(object);
    out.close();

    // Serialize to a byte array
    ByteArrayOutputStream bos = new ByteArrayOutputStream() ;
    out = new ObjectOutputStream(bos) ;
    out.writeObject(object);
    out.close();

    // Get the bytes of the serialized object
    byte[] buf = bos.toByteArray();
} catch (IOException e) {
}

byte数据类型的另一种用法也与图像有关。例如,您可以执行以下操作:byte[] pixels = ((DataBufferByte) bufferedImage.getRaster().getDataBuffer()).getData();(取自here)以访问与像素相关的信息。

答案 2 :(得分:1)

byte是java中的8位有符号原语类型。在我们以字节形式处理数据的情况下,例如“从/向文件读取/写入字节数据”,它是有用的。 您可以在here找到最佳实用示例。