Top / example / ファイルストリーム
/
ファイルストリーム

目次

概要

ファイル書き込み

/* スクリプトのロード */
Scripts.execStorage("ktl/StorageStream.tjs");

/* StorageStream のインスタンス作成 */
var stream = new StorageStream();

/* 書き込み用にファイルを開く */
if (!stream.open(System.dataPath + "io.txt", StorageStream.afWrite))
    Debug.message("ファイルオープンに失敗しました。");
}

/* 以下、[<-]をポインタ(読み書きのオフセット位置)とする */
/* BOMを書き込む */
/*
    [BOM][<-]
*/
stream.writeString("\xFEFF");

/* 書き込み */
/*
    [BOM]hoge
    [<-]
*/
stream.writeString("hoge\r\n");

/* 書き込み */
/*
    [BOM]hoge
    hoge
    [<-]
*/
stream.writeString("hoge\r\n");

/* 書き込み */
/*
    [BOM]hoge
    hoge
    foobar
    [<-]
*/
stream.writeString("foobar\r\n");

/* ポインタを絶対位置0へシーク */
/*
    [<-][BOM]hoge
    hoge
    foobar
*/
stream.seek(0, StorageStream.sfSet);

/* ポインタを現在位置+2へシーク */
/*
    [BOM][<-]hoge
    hoge
    foobar
*/
stream.seek(2, StorageStream.sfCur);

/* 書き込み */
/*
    [BOM]piyo
    [<-]hoge
    foobar
*/
stream.writeString("piyo\r\n");

/* ポインタを終端位置+0へシーク */
/*
    [BOM]hoge
    hoge
    foobar
    [<-]
*/
stream.seek(0, StorageStream.sfEnd);

/* ストリームを閉じる */
stream.close();

ファイル読み込み

/* スクリプトのロード */
Scripts.execStorage("ktl/StorageStream.tjs");

/* StorageStream のインスタンス作成 */
var stream = new StorageStream();

/* 読み込み用にファイルを開く */
if (!stream.open(System.dataPath + "io.txt", StorageStream.afRead))
    Debug.message("ファイルオープンに失敗しました。");
}

if(stream.size < 2 || stream.size % 2) {
    Debug.message("Unicodeでない、またはBOMがありません。");
}

/* BOMを読み込む */
if (stream.readString(2) != "\xFEFF") {
    Debug.message("BOMが無い、またはエンディアンが異なります。");
}

/* 文字列として読み込む */
var str = stream.readString();
Debug.message(str);