⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jfilestream.cpp

📁 b tree code for index in the database design
💻 CPP
字号:
//////////////////////////////////////////////////////////////////
///
/// (C) 2007: Yuriy Soroka <ysoroka@scalingweb.com>
///	      Anton Fedoruk <afedoruk@scalingweb.com>
///
//////////////////////////////////////////////////////////////////

#include "JFileStream.h"
#include <QFileInfo>

//	======================================================
//	JFileStream::JFileStream

JFileStream::JFileStream()
{}

//	======================================================
//	JFileStream::JFileStream

JFileStream::JFileStream( const QFile& file )
{
	open( QFileInfo( file ).absoluteFilePath() );
}

//	======================================================
//	JFileStream::JFileStream

JFileStream::JFileStream(const QString& name)
{
	open( name );
}

//	======================================================
//	JFileStream::~JFileStream

JFileStream::~JFileStream()
{
	flush();
	close();
}

//	======================================================
//	JFileStream::size

inline gint64 JFileStream::size()
{
	return file_.size();
}

//	======================================================
//	JFileStream::close

inline void JFileStream::close()
{
	file_.close();
}

//	======================================================
//	JFileStream::seek

inline bool JFileStream::seek( gint64 position )
{
	return file_.seek( position );
}

//	======================================================
//	JFileStream::pos

inline gint64 JFileStream::pos() const
{
	return file_.pos();
}

//	======================================================
//	JFileStream::reset

inline void JFileStream::reset()
{
	file_.reset();
}

//	======================================================
//	JFileStream::flush

inline void JFileStream::flush()
{
	file_.flush();
}

//	======================================================
//	JFileStream::write

gint64 JFileStream::write( const char* pBuffer, gint64 bufLen )
{
	//if ( !file_.isOpen() ) return -1;

	return file_.write( pBuffer, bufLen );
}

//	======================================================
//	JFileStream::open

bool JFileStream::open( const QString& fileName ) 
{
	if( fileName.isEmpty() )
	{
		return false;
	}
	else
	{
		QFileInfo fi( fileName );
		if ( fi.isDir() )
		{
			return false;
		}
	}

	if ( file_.isOpen() )
	{
		file_.close();
	}

	file_.setFileName( fileName );
	return file_.open( QIODevice::ReadWrite );
}

//	======================================================
//	JFileStream::atEnd

inline bool JFileStream::atEnd() const
{
	return file_.atEnd();
}

//	======================================================
//	JFileStream::read

gint64 JFileStream::read(char* pBuffer, gint64 bufLen)
{
	if(bufLen > LONG_MAX)
	{
		bufLen = LONG_MAX;
	}

	//if ( !file_.isOpen() ) return -1;

	gint64 bytesRead = file_.read( pBuffer, bufLen );

	if ( bytesRead == 0 )
	{
		return JInputStream::EndOfFile;
	}

	return bytesRead;
}

//	======================================================
//	JFileStream::readLine

gint64 JFileStream::readLine( char* data, gint64 maxSize )
{
	return file_.readLine( data, maxSize );
}

//	======================================================
//	JFileStream::readLine

QByteArray JFileStream::readLine()
{
	return file_.readLine();
}

//	======================================================
//	JFileStream::resize

void JFileStream::resize( gint64 newSize )
{
	file_.resize( newSize );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -