A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://developer.mozilla.org/ja/docs/Web/API/FileSystemSyncAccessHandle/read below:

FileSystemSyncAccessHandle.read() - Web API | MDN

FileSystemSyncAccessHandle.read()

Baseline 2023

Newly available

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

FileSystemSyncAccessHandle インターフェイスの read() メソッドは、ハンドルに対応するファイルの内容を指定のバッファーに読み込みます。オフセットを指定することもできます。

構文
read(buffer, FileSystemReadWriteOptions)
引数
buffer

ファイルの内容を読み込むバッファーを表す ArrayBuffer または (DataView などの) ArrayBufferView です。ArrayBuffer の内容を直接操作することはできないことに注意してください。かわりに、バッファーを特定のフォーマットで表す Int8Array などの型付き配列のうちの一つ、もしくは DataView のオブジェクトを作成し、それを用いてバッファーの内容を読み書きします。

FileSystemReadWriteOptions 省略可

以下のプロパティを持つオプションオブジェクトです。

at

ファイルをどこから読み込むかのバイト単位のオフセットを表す数値です。

返値

ファイルから読み込んだバイト数を表す数値で解決する Promise を返します。

例外
InvalidStateError DOMException

対応するアクセスハンドルが既に閉じられているとき投げられます。

例

以下の非同期のイベントハンドラー関数は、Web Worker の中にあります。メインスレッドからメッセージを受信すると、以下の動作をします。

onmessage = async (e) => {
  // メインスクリプトからの処理対象のメッセージを取得する
  const message = e.data;

  // draft ファイルのハンドルを取得する
  const root = await navigator.storage.getDirectory();
  const draftHandle = await root.getFileHandle("draft.txt", { create: true });
  // 同期式アクセスハンドルを取得する
  const accessHandle = await draftHandle.createSyncAccessHandle();

  // ファイルのサイズを取得する
  const fileSize = accessHandle.getSize();
  // ファイルの内容をバッファーに読み込む
  const buffer = new DataView(new ArrayBuffer(fileSize));
  const readBuffer = accessHandle.read(buffer, { at: 0 });

  // メッセージをファイルの終端に書き込む
  const encoder = new TextEncoder();
  const encodedMessage = encoder.encode(message);
  const writeBuffer = accessHandle.write(encodedMessage, { at: readBuffer });

  // 変更をディスクに書き込む
  accessHandle.flush();

  // 完了したら、常に FileSystemSyncAccessHandle を閉じる
  accessHandle.close();
};

メモ: 仕様書の以前のバージョンでは、close()・flush()・getSize()・truncate() は誤って非同期のメソッドとされていました。これは現在では変更されていますが、まだ非同期バージョンをサポートしているブラウザーもあります。

仕様書 ブラウザーの互換性 関連情報

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4