diff --git a/interfaces/kits/js/src/mod_fs/class_randomaccessfile/fs_randomaccessfile.cpp b/interfaces/kits/js/src/mod_fs/class_randomaccessfile/fs_randomaccessfile.cpp index 8d8b149f62ab2ec10d5ee9ee42d29d0823f99fd7..2d3a205bd34e25da8a90283d887b8990faccd99e 100644 --- a/interfaces/kits/js/src/mod_fs/class_randomaccessfile/fs_randomaccessfile.cpp +++ b/interfaces/kits/js/src/mod_fs/class_randomaccessfile/fs_randomaccessfile.cpp @@ -133,15 +133,17 @@ FsResult FsRandomAccessFile::ReadSync(ArrayBuffer &buffer, const option HILOGE("Failed to get entity of RandomAccessFile"); return FsResult::Error(EIO); } + auto [succ, buf, len, offset] = ValidReadArg(buffer, options); if (!succ) { HILOGE("Invalid buffer/options"); return FsResult::Error(EINVAL); } offset = CalculateOffset(offset, rafEntity->filePointer); + int actLen = DoReadRAF(buf, len, rafEntity->fd.get()->GetFD(), offset); if (actLen < 0) { - HILOGE("Failed to read file for %{private}d", actLen); + HILOGE("Failed to read file for %{public}d", actLen); return FsResult::Error(actLen); } rafEntity->filePointer = offset + actLen; @@ -279,6 +281,7 @@ FsResult FsRandomAccessFile::Constructor() HILOGE("INNER BUG. Failed to wrap entity for obj RandomAccessFile"); return FsResult::Error(EIO); } + return FsResult::Success(move(randomAccessFilePtr)); } diff --git a/interfaces/kits/js/src/mod_fs/class_randomaccessfile/fs_randomaccessfile.h b/interfaces/kits/js/src/mod_fs/class_randomaccessfile/fs_randomaccessfile.h index 8756a9e3361996c9df2ab2204703cdafb0090cb0..262a516cb693d9d29007b74afa456e1c849f72c2 100644 --- a/interfaces/kits/js/src/mod_fs/class_randomaccessfile/fs_randomaccessfile.h +++ b/interfaces/kits/js/src/mod_fs/class_randomaccessfile/fs_randomaccessfile.h @@ -68,10 +68,8 @@ public: FsResult WriteSync(const ArrayBuffer &buffer, const optional &options = nullopt) const; FsResult ReadSync(ArrayBuffer &buffer, const optional &options = nullopt) const; FsResult CloseSync() const; - FsResult GetFD() const; FsResult GetFPointer() const; - static FsResult Constructor(); private: