📅  最后修改于: 2023-12-03 15:01:52.501000             🧑  作者: Mango
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值,并输出其内容。
# 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值,并输出其内容。