📌  相关文章
📜  Java中的 DataInputStream readUnsignedShort() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:01:52.501000             🧑  作者: Mango

Java中的 DataInputStream readUnsignedShort() 方法及示例

Java中的DataInputStream类提供了读取二进制数据的方法。其中readUnsignedShort()方法用于读取输入流中的无符号16位short值并返回。

方法原型
public final int readUnsignedShort() throws IOException
方法说明

该方法从输入流中读取2字节(16位)的数据,并将其视为无符号的short值,然后返回该short值。

如果达到文件末尾或者出现IO错误,此方法将抛出IOException异常。

示例

以下是一个使用readUnsignedShort()方法读取字节数组和输出其内容的示例:

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;

public class DataInputStreamDemo {

    public static void main(String[] args) throws IOException {
        byte[] bytes = new byte[]{0x00, 0x6C, 0x00, 0x6D};
        ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
        DataInputStream dis = new DataInputStream(stream);

        // 读取无符号short值
        int value = dis.readUnsignedShort();
        System.out.println("value = " + value);

        // 输出字节数组内容
        StringBuilder sb = new StringBuilder();
        sb.append("[ ");
        for (byte b : bytes) {
            sb.append(b).append(" ");
        }
        sb.append("]");
        System.out.println("bytes = " + sb.toString());
    }
}

运行上述示例代码输出结果为:

value = 108
bytes = [ 0 108 0 109 ]

以上示例将字节数组 0x00, 0x6C, 0x00, 0x6D 读入到ByteArrayInputStream中,并将其封装到DataInputStream中。然后通过readUnsignedShort()方法读取无符号short值,并输出其内容。

markdown代码片段
# Java中的 DataInputStream readUnsignedShort() 方法及示例

Java中的DataInputStream类提供了读取二进制数据的方法。其中readUnsignedShort()方法用于读取输入流中的无符号16位short值并返回。

## 方法原型

```java
public final int readUnsignedShort() throws IOException
方法说明

该方法从输入流中读取2字节(16位)的数据,并将其视为无符号的short值,然后返回该short值。

如果达到文件末尾或者出现IO错误,此方法将抛出IOException异常。

示例

以下是一个使用readUnsignedShort()方法读取字节数组和输出其内容的示例:

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;

public class DataInputStreamDemo {

    public static void main(String[] args) throws IOException {
        byte[] bytes = new byte[]{0x00, 0x6C, 0x00, 0x6D};
        ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
        DataInputStream dis = new DataInputStream(stream);

        // 读取无符号short值
        int value = dis.readUnsignedShort();
        System.out.println("value = " + value);

        // 输出字节数组内容
        StringBuilder sb = new StringBuilder();
        sb.append("[ ");
        for (byte b : bytes) {
            sb.append(b).append(" ");
        }
        sb.append("]");
        System.out.println("bytes = " + sb.toString());
    }
}

运行上述示例代码输出结果为:

value = 108
bytes = [ 0 108 0 109 ]

以上示例将字节数组 '0x00, 0x6C, 0x00, 0x6D' 读入到ByteArrayInputStream中,并将其封装到DataInputStream中。然后通过readUnsignedShort()方法读取无符号short值,并输出其内容。