ファイル選択フォームで選んだファイルの内容をFileReaderオブジェクトを使って書き出す

ダイアログから選択されたファイルを読む込むために FileReaderオブジェクトを作成する。

非同期処理 ⇒ コールバックで結果を得る( ex. FileReader() )

同期処理  ⇒ ブロック(処理が終わるまで待つ)( ex. alert() )


コールバックとイベントの主な違いは、コールバックは基本的には1回だけ呼ばれるのに対し、イベントは何回でも発生する可能性があるという点。

<form name="form01" action="">
    <div>
        <input name="file" type="file" />
    </div>
    <p id="content"></p>
</form>
let formInput = document.forms.form01.file;

formInput.addEventListener("change", () => {
    var selectedFile = formInput.files[0];
    var fileReader = new FileReader();

    // ファイルを読み込み終わった後の処理
    fileReader.addEventListener("load", function () {
        const content = document.getElementById("content");

        // resultプロパティで読み込んだ内容を参照する
        content.innerText = fileReader.result;
    });
    // ファイルを文字列として読み込みます。
    fileReader.readAsText(selectedFile);
});