CMCore/inc/hgl/io/RandomAccessFile.h

48 lines
2.5 KiB
C
Raw Normal View History

2019-08-19 19:19:58 +08:00
#ifndef HGL_IO_RANDOM_ACCESS_FILE_INCLUDE
#define HGL_IO_RANDOM_ACCESS_FILE_INCLUDE
#include<hgl/io/InputStream.h>
#include<hgl/io/OutputStream.h>
#include<hgl/io/FileAccess.h>
namespace hgl
{
namespace io
{
/**
* 访</p>
* DataInputStream/DataOutputStream包含引用访
*/
class RandomAccessFile:public InputStream,public OutputStream
{
protected:
SharedPtr<FileAccess> file; ///<文件访问指针
public:
RandomAccessFile();
RandomAccessFile(SharedPtr<FileAccess> &);
~RandomAccessFile();
virtual bool Open(const OSString &); ///<打开文件
virtual void Close(); ///<关闭文件
virtual int64 Read(void *,int64); ///<读取数据
virtual int64 Write(const void *,int64); ///<写入数据
virtual int64 Read(int64,void *,int64); ///<在指定位置读取指定长度的数据
virtual int64 Write(int64,const void *,int64); ///<在指定位置写入指定长度的数据
virtual bool CanSeek()const; ///<是否可移动访问指针
virtual bool CanRestart()const; ///<是否可复位访问
virtual bool CanSize()const; ///<是否可访问文件长度
virtual int64 Tell()const; ///<取当前位置
virtual int64 GetSize(); ///<取得文件长度
virtual bool Restart(); ///<复位访问指针
virtual int64 Seek(int64,SeekOrigin=SeekOrigin::Begin); ///<移动访问指针
};//class RandomAccessFile
}//namespace io
}//namespace hgl
#endif//HGL_IO_RANDOM_ACCESS_FILE_INCLUDE