2011年8月20日 星期六

Rhino運用Java物件讀寫UTF-8文字檔案

在前一篇「Rhino運用Java物件的方式」中,試著在Rhino環境下使用Java物件進行檔案的讀/寫功能。但在處理其它檔案時發現,無法讀取UTF-8編碼格式的文字檔(廢話 ~_~)。上網翻一下,如果要讀/寫"UTF-8"編碼格式的文字檔,就要在開啟檔案時指定編碼方式。
底下二篇文章對於編碼的說明比較清楚,提供參考:
看完後發現,之前用Java的FileReader物件讀/寫檔案,用的是作業系統預設的編碼格式(在XP上就是所謂的"BIG5"編碼)。要自行指定編碼格式就必需改用其它物件(這邊改用上述文章介紹的InputStreamReaderOutputStreamWriter物件),底下就是改成Rhino JavaScript的程式碼:
/**
 *
 * Rhino建立Java物件之測試。
 *
 * @author ace(http://ace33022.blogspot.com/)
 *
 * @version 2011/08/03 v0.1 初始版本。
 *
 * @see <a href="http://caterpillar.onlyfun.net/Gossip/JavaGossip-V2/StreamReaderWriter.htm">InputStreamReader、OutputStreamWriter</a>
 * @see <a href="http://blog.xuite.net/ray00000test/blog/33280422?ref=rel">寫入文字檔(可自行指定寫入格式)</a>
 *
 * @description
 *
 */

var strSourceFile = new String("C:\\Dev-Rhino\\joke-utf8.txt");

// 讀取檔案內容(UTF8編碼格式)。
var filSource = new java.io.File(strSourceFile);
var fisSource = new java.io.FileInputStream(filSource); 
var BufferedReader = new java.io.BufferedReader(new java.io.InputStreamReader(fisSource, "UTF-8"));

try {
    var strTemp = new String();

    while ((strTemp = BufferedReader.readLine()) != null) print(strTemp);
}
catch (e) {
    print("執行過程有誤,錯誤訊息:" + e.description);
}
finally {
    if (BufferedReader != null) {
      BufferedReader.close();
  }
}
對於Rhino與Java搭配的語法可算是有點眉目了,再多試幾個應用方式,也許可以用來解決一些本機上的資料處理方式。

沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...