#ifndef HGL_IO_JAVA_INPUT_STREAM_INCLUDE #define HGL_IO_JAVA_INPUT_STREAM_INCLUDE #include namespace hgl { namespace io { /** * Java数据输入流
* 接口类似于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,SeekOrigin::Current):-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 (U16String &str) { return in?in->ReadUTF8ShortString(str):false; } };//class JavaInputStream }//namespace io }//namespace hgl #endif//HGL_IO_JAVA_INPUT_STREAM_INCLUDE