X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Ffile_directories%2Fio%2Fclass_FrameworkFileInputOutputPointer.php;h=b167fee3d363d409865c577e24500c5d2e9534d7;hp=078c206be29400b5aee821748067a73f2827630d;hb=978c24260ea30de3b29d4436d707bdc67a8e9b9e;hpb=f18669b3ece63a283957eb0114967d322648094a;ds=sidebyside diff --git a/inc/classes/main/file_directories/io/class_FrameworkFileInputOutputPointer.php b/inc/classes/main/file_directories/io/class_FrameworkFileInputOutputPointer.php index 078c206b..b167fee3 100644 --- a/inc/classes/main/file_directories/io/class_FrameworkFileInputOutputPointer.php +++ b/inc/classes/main/file_directories/io/class_FrameworkFileInputOutputPointer.php @@ -57,7 +57,7 @@ class FrameworkFileInputOutputPointer extends BaseFileIo implements InputOutputP } // Try to open a handler - $filePointer = fopen($fileName, 'a+b'); + $filePointer = fopen($fileName, 'c+b'); if ((is_null($filePointer)) || ($filePointer === FALSE)) { // Something bad happend throw new FileIoException($fileName, self::EXCEPTION_FILE_POINTER_INVALID); @@ -115,7 +115,29 @@ class FrameworkFileInputOutputPointer extends BaseFileIo implements InputOutputP } // Write data to the file pointer and return written bytes - return fwrite($this->getPointer(), $dataStream); + return fwrite($this->getPointer(), $dataStream, strlen($dataStream)); + } + + /** + * Rewinds to the beginning of the file + * + * @return void + */ + public function rewind () { + // Rewind the pointer + assert(rewind($this->getPointer()) === 1); + } + + /** + * Seeks to given position + * + * @param $seekPosition Seek position in file + * @param $whence "Seek mode" (see http://de.php.net/fseek) + * @return void + */ + public function seek ($seekPosition, $whence = SEEK_SET) { + // Move the file pointer + assert(fseek($this->getPointer(), $seekPosition, $whence) === 0); } }