下面是我的代码替换DataInputStream来包装InputStream,但除了读取大端类型的常规方法之外,还提供了读取小端数据类型的额外方法.如果您愿意,请随意使用.
我有一些保留如下.请注意不改变功能的方法(读取大端类型的函数).我无法将DataInputStream实现为基类并使用其方法,如read(),readInt(),readChar()等?
我的班级层次似乎有点奇怪.这个合适吗?
这些其他类型如readUTF()或readLine()是否需要一个小的endian版本?或者这是特定程序的主观?
Java如何存储布尔类型?对于字节顺序是否也是主观的?
谢谢你满足我的好奇心:)
import java.io.*;
/**
* Replacement for a DataInputStream that provides both little and big endian reading capabilities for convenience without need to implement a ByteBuffer
* @author Bill (unspecified.specification@gmail.com)
*/
public class EndianInputStream extends InputStream implements DataInput {
private DataInputStream dataInStream;
private InputStream inStream;
private byte byteBuffer[];
/**
* Constructor to wrap InputStream for little and big endian data
* @param refInStream Inputstream to wrap
*/
public EndianInputStream(InputStream refInStream) {
inStream = refInStream;
dataInStream …Run Code Online (Sandbox Code Playgroud)