ファイル読み込み
テキストファイルの読み込みである場合'utf-8'
のようにエンコーディングを指定する。
-
File System | Node.js Documentation
const fs = require('fs');
// sync
const text = fs.readFileSync('./input.txt', 'utf8');
// async
fs.readFile('./input.txt', 'utf8', function(err, text) {
if (err) throw err;
console.log(text);
});
Shift JISファイルの読込と書込
$ npm install -S iconv-lite
const fs = require('fs');
const iconv = require('iconv-lite');
const file = fs.readFileSync('./input.txt');
const text= iconv.decode(Buffer.from(file), "Shift_JIS");
// ...
const buf = iconv.encode(text, "Shift_JIS");
fs.writeFileSync('output.txt', buf, ()=>{});
ファイル書き込み
ファイル書き込み(上書き)
require("fs").writeFileSync("out.txt", "Hello!");
1列読み込み
sample.txt
red
blue
green
yellow
const fs = require('fs');
const content = fs.readFileSync('sample.txt').toString();
const colors = content.trim().split('\n');
//=> [ 'red', 'blue', 'green', 'yellow' ]
ファイルコピー
const fs = require('fs');
fs.createReadStream('src.txt').pipe(fs.createWriteStream('dest.txt'));
glob
npm i glob
const glob = require('glob');
const files = glob.sync("**/*.js", options);
URL Path Join
url.resolve(from, to)
を使用する。
よくある join による連結ではなく、現在地と行き先を渡す。
from で指定された URL を現在地として to という行き先を命令された場合に
結局どこに行くのかを解明した結果を返す。
from は http://
で開始する必要はない。
逆に to が http://
から始まる URL でもよい。
それは外部サイトに移動する時と同じ挙動と言える。
url.resolve('/japan/tokyo/shibuya', 'ebisu')
//=> '/japan/tokyo/ebisu'
url.resolve('http://world.com', 'japan')
//=> 'http://world.com/japan'
url.resolve('http://world.com/japan/tokyo/', '../osaka/')
//=> 'http://world.com/japan/osaka/'
url.resolve('http://world.com/japan/tokyo/', '/america/new-york')
//=> 'http://world.com/america/new-york'
url.resolve('http://world.com', 'https://google.com')
//=> 'https://google.com/'