masalibの日記

システム開発、運用と猫の写真ブログです

Deno.landでのファイルの読み書き

読み書きと書いてあるのですが書きからです

ファイルの書き込み

const encoder = new TextEncoder()
const greetText = encoder.encode("Hello World\nMy Name is Masalib")
await Deno.writeFile("greet.txt", greetText)    
  • ファイルに書き込むには、Deno.writeFileを使います。
  • 第2引数には[Uint8Array]しか渡せないため、文字列は[TextEncoder]でエンコードする必要があります。
  • 実行する時には「--allow-write」が必要です
deno run --allow-write createFile.ts 

これは公式が書いてある

明示的に有効にしない限り、ファイル、ネットワーク、または環境へのアクセスはありません。

のためです。
ちょっとめんどくさいけどセキュリティー的にはいいかも

ファイルの読み込み

let file = await Deno.open("greet.txt")
await Deno.copy(file,Deno.stdout)
file.close

https://qiita.com/niwasawa/items/a4e695c4a5ecd8ce69f1 にはDeno.copyを使うみたいな事が書いてあるのですが現実的なのは変数にいれる事なので

const result = await Deno.readFile("greet.txt");
const dec = new TextDecoder("utf-8");
const text = dec.decode(result);
console.log(text);
deno run --allow-read readFile.ts

書き込みと同様に「--allow-read」が必要です

読み書き時に[TextEncoder]でエンコードやデコードするのがめんどくさいな~

参考URL
https://scrapbox.io/deno-ja/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80