Skip to content

Instantly share code, notes, and snippets.

@Black-Yamasan
Last active March 6, 2022 15:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Black-Yamasan/10caaaa3b1bc1b043ec428f3a7a6ed20 to your computer and use it in GitHub Desktop.
Save Black-Yamasan/10caaaa3b1bc1b043ec428f3a7a6ed20 to your computer and use it in GitHub Desktop.
Node.jsでローカルのファイルを読み書き

Node.jsでローカルのファイルを読み書きする

Node.jsでローカルにあるテキストファイルを読み書きするためのサンプルコード

前提条件

以下をインストール済みであること

  • yarn または npm
  • Node.js

使うもの

構成

├── original
│   └── test.txt  ... 読み取るテキストファイル
├── output
│   └── file.txt  ... 書き出し後のテキストファイル
├── package.json
├── src
│   └── index.ts ... コードを書くファイル

index.ts にtsファイルのコードを記述し、以下のコマンドを実行すると output/file.txt のファイルが出力されます。

command

npx ts-node ./src/index.ts
const fs = require('fs')
const path = require('path')
const mkdirp = require('mkdirp')
import { Buffer } from 'buffer'
const ORIGINAL_FILE = path.resolve('original/test.txt')
const OUTPUT_DIR = 'output/'
const OUTPUT_FILE_NAME = 'file.txt'
// 出力用のディレクトリを生成
const createOuputDirectory = async () => {
mkdirp.sync(OUTPUT_DIR)
}
const writeFile = async () => {
fs.readFile(ORIGINAL_FILE, (error: any, data: any) => {
if (error) {
console.error(error)
return
}
// 読み取った中身を加工したい場合はdecodeする
const decode = data.toString()
console.log(decode)
const outputFile = path.resolve(`${OUTPUT_DIR}${OUTPUT_FILE_NAME}`)
// decodeした中身をバイナリデータにする
const writeData = new Uint8Array(Buffer.from(decode))
fs.writeFile(outputFile, writeData, (error: any) => {
if (error) {
console.error(error)
return
}
console.log(OUTPUT_FILE_NAME)
})
})
}
const init = async () => {
await createOuputDirectory()
await writeFile()
}
init()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment