7

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

4

3 回答 3

4

当您阅读时,字节在读取位流时很有用

在说出原因之前,我先问你一个问题,一个字符表示为多少位或字节?8位/1字节。我希望你在这里得到字节的原因。

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

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

周围的一切都是 10100010 的倍数,因此当您不确定发送者的期望或接收者的期望时,请使用字节。

于 2012-09-28T06:12:21.077 回答
2

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

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[] pixels = ((DataBufferByte) bufferedImage.getRaster().getDataBuffer()).getData();:(取自此处)来访问像素相关信息。

于 2012-09-28T05:46:57.113 回答
1

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

于 2012-09-28T05:55:09.253 回答