72 lines
2.4 KiB
C
72 lines
2.4 KiB
C
|
#ifndef HGL_IO_JAVA_INPUT_STREAM_INCLUDE
|
|||
|
#define HGL_IO_JAVA_INPUT_STREAM_INCLUDE
|
|||
|
|
|||
|
#include<hgl/io/DataInputStream.h>
|
|||
|
namespace hgl
|
|||
|
{
|
|||
|
namespace io
|
|||
|
{
|
|||
|
/**
|
|||
|
* Java数据输入流<br>
|
|||
|
* 接口类似于java.io.DataInputStream,用于和Java程序进行交互
|
|||
|
*/
|
|||
|
class JavaInputStream
|
|||
|
{
|
|||
|
protected:
|
|||
|
|
|||
|
BEDataInputStream *in;
|
|||
|
|
|||
|
public:
|
|||
|
|
|||
|
JavaInputStream(InputStream *is)
|
|||
|
{
|
|||
|
in=new BEDataInputStream(is);
|
|||
|
}
|
|||
|
|
|||
|
virtual ~JavaInputStream()
|
|||
|
{
|
|||
|
delete in;
|
|||
|
}
|
|||
|
|
|||
|
int64 read (void *ptr,int size){return in?in->ReadFully(ptr,size):-1;}
|
|||
|
int skipBytes (int size) {return in?in->Seek(size,soCurrent):-1;}
|
|||
|
|
|||
|
bool readBoolean (bool &b) {return in?in->ReadBool (b):false;}
|
|||
|
bool readByte (int8 &i) {return in?in->ReadInt8 (i):false;}
|
|||
|
bool readUnsignedByte (uint8 &i) {return in?in->ReadUint8 (i):false;}
|
|||
|
|
|||
|
bool readShort (int16 &i) {return in?in->ReadInt16 (i):false;}
|
|||
|
bool readUnsignedShort (uint16 &i) {return in?in->ReadUint16 (i):false;}
|
|||
|
bool readInt (int32 &i) {return in?in->ReadInt32 (i):false;}
|
|||
|
bool readLong (int64 &i) {return in?in->ReadInt64 (i):false;}
|
|||
|
bool readFloat (float &f) {return in?in->ReadFloat (f):false;}
|
|||
|
bool readDouble (double &d) {return in?in->ReadDouble (d):false;}
|
|||
|
|
|||
|
bool readChar (u16char &c)
|
|||
|
{
|
|||
|
if(!in)
|
|||
|
return(false);
|
|||
|
|
|||
|
uint16 c16;
|
|||
|
|
|||
|
if(!in->Read(c16))
|
|||
|
return(false);
|
|||
|
|
|||
|
c=BigToCurrentEndian(c16);
|
|||
|
return(true);
|
|||
|
}
|
|||
|
|
|||
|
bool readChars (u16char *wstr,const int count)
|
|||
|
{
|
|||
|
return in?in->ReadUTF16BEChars(wstr,count):false;
|
|||
|
}
|
|||
|
|
|||
|
bool readUTF (UTF16String &str)
|
|||
|
{
|
|||
|
return in?in->ReadUTF8ShortString(str);
|
|||
|
}
|
|||
|
};//class JavaInputStream
|
|||
|
}//namespace io
|
|||
|
}//namespace hgl
|
|||
|
#endif//HGL_IO_JAVA_INPUT_STREAM_INCLUDE
|