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

📄 fileinputstream.cpp

📁 lucene in java大家一定听说过了
💻 CPP
字号:
/*------------------------------------------------------------------------------* Copyright (C) 2003-2006 Jos van den Oever* * Distributable under the terms of either the Apache License (Version 2.0) or * the GNU Lesser General Public License, as specified in the COPYING file.------------------------------------------------------------------------------*/#include "jstreamsconfig.h"#include "fileinputstream.h"#include <cerrno>#include <cstring>using namespace jstreams;const int32_t FileInputStream::defaultBufferSize = 1048576;FileInputStream::FileInputStream(const char *filepath, int32_t buffersize) {    // try to open the file for reading    file = fopen(filepath, "rb");    this->filepath = filepath;    if (file == 0) {        // handle error        error = "Could not read file '";        error += filepath;        error += "': ";	error += strerror(errno);        status = Error;        return;    }    // determine file size. if the stream is not seekable, the size will be -1    fseek(file, 0, SEEK_END);    size = ftell(file);    fseek(file, 0, SEEK_SET);    // if the file has size 0, make sure that it's really empty    // this is useful for filesystems like /proc that report files as size 0    // for files that do contain content    if (size == 0) {        char dummy[1];        size_t n = fread(dummy, 1, 1, file);        if (n == 1) {            size = -1;            fseek(file, 0, SEEK_SET);        } else {            fclose(file);            file = 0;            return;        }    }    // allocate memory in the buffer    mark(buffersize);}FileInputStream::~FileInputStream() {    if (file) {        if (fclose(file)) {            // handle error            error = "Could not close file '" + filepath + "'.";        }    }}int32_tFileInputStream::fillBuffer(char* start, int32_t space) {    if (file == 0) return -1;    // read into the buffer    int32_t nwritten = fread(start, 1, space, file);    // check the file stream status    if (ferror(file)) {        error = "Could not read from file '" + filepath + "'.";        fclose(file);        file = 0;        status = Error;        return -1;    }    if (feof(file)) {        fclose(file);        file = 0;    }    return nwritten;}

⌨️ 快捷键说明

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