ハードなソフトの話

アクセスカウンタ

zoom RSS nashornでファイルの読み取りと書き込み

<<   作成日時 : 2017/03/28 09:14  

ブログ気持玉 0 / トラックバック 0 / コメント 0

まだ、いろいろとわからないのだが、nashornで使えるファイルの読み書き用の関数を作った。

file_io.js とかいうファイル名で保存して、load(“file_io.js”)とかすると、便利かもしれない



// ファイルからテキストを読み込む
function readFile( filepath, encoding ){
    if ( typeof(encoding) === 'undefined' ) encoding = 'UTF-8';
    var Paths = Java.type('java.nio.file.Paths');
    var Files = Java.type('java.nio.file.Files');
    var cs = getCharset(encoding);
    var lines = Files.readAllLines( Paths.get(filepath), cs );
    var data = [];
    lines.forEach(function(line) { data.push(line); });
    return data.join("\n");
}

// ファイルにテキストを書き込む
function writeFile( filepath, text, encoding ){
    if ( typeof(filepath) === 'undefined' ) throw "filedpath is required";
    if ( typeof(text)     === 'undefined' ) throw "text is required";
    if ( typeof(encoding) === 'undefined' ) encoding = 'UTF-8';
    var cs = getCharset(encoding);
    var fs = new java.io.FileOutputStream(filepath);
    var osw = new java.io.OutputStreamWriter(fs, cs) ;
    osw.write(text, 0, text.length);
    osw.close();
}

// encoding 文字列をCharsetに変換。(UTF-8とShift_JISのみ)
function getCharset(encoding){
    var Charset = Java.type('java.nio.charset.Charset');
    switch(encoding){
    case 'SJIS':
    case 'Shift_JIS':
    case 'Shift-JIS':
    case 'MS_Kanji':
return Charset.forName('Shift_JIS');
    case 'UTF-8':
    case 'UTF_8':
return Java.type('java.nio.charset.StandardCharsets').UTF_8;
    default:
throw 'Invalid charset: '+encoding;
    }
    return null;
}

true;


テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
nashornでファイルの読み取りと書き込み ハードなソフトの話/BIGLOBEウェブリブログ
文字サイズ:       閉じる