#ifndef HGL_IO_JAVA_OUTPUT_STREAM_INCLUDE #define HGL_IO_JAVA_OUTPUT_STREAM_INCLUDE #include namespace hgl { namespace io { /** * Java数据输出流
* 接口类似于java.io.DataOutputStream,用于和Java程序进行交互 */ class JavaOutputStream { protected: BEDataOutputStream *out; public: JavaOutputStream(OutputStream *os) { out=new BEDataOutputStream(os); } virtual ~JavaOutputStream() { delete out; } int64 write (const void *ptr,int size) {return out?out->WriteFully(ptr,size):-1;} bool writeBoolean (const bool &b) {return out?out->WriteBool (b):false;} bool writeByte (const int8 &i) {return out?out->WriteInt8 (i):false;} bool writeUnsignedByte (const uint8 &i) {return out?out->WriteUint8 (i):false;} bool writeShort (const int16 &i) {return out?out->WriteInt16 (i):false;} bool writeUnsignedShort (const uint16 &i) {return out?out->WriteUint16(i):false;} bool writeInt (const int32 &i) {return out?out->WriteInt32 (i):false;} bool writeLong (const int64 &i) {return out?out->WriteInt64 (i):false;} bool writeFloat (const float &f) {return out?out->WriteFloat (f):false;} bool writeDouble (const double &d) {return out?out->WriteDouble(d):false;} bool writeChar (const u16char &c) { if(!out) return(false); return out->Write(ToBigEndian(c)); } bool writeChars (const u16char *wstr,const int64 count) { return out?out->WriteUTF16BEChars(wstr,count):false; } bool writeUTF (const U8String &str){return out?out->WriteUTF8ShortString(str):false;} bool writeUTF (const U16String &str){return out?out->WriteUTF8ShortString(str):false;} };//class JavaOutputStream }//namespace io }//namespace hgl #endif//HGL_IO_JAVA_OUTPUT_STREAM_INCLUDE