在前一篇「Rhino運用Java物件的方式」中,試著在Rhino環境下使用Java物件進行檔案的讀/寫功能。但在處理其它檔案時發現,無法讀取UTF-8編碼格式的文字檔(廢話 ~_~)。上網翻一下,如果要讀/寫"UTF-8"編碼格式的文字檔,就要在開啟檔案時指定編碼方式。
底下二篇文章對於編碼的說明比較清楚,提供參考:
看完後發現,之前用Java的FileReader物件讀/寫檔案,用的是作業系統預設的編碼格式(在XP上就是所謂的"BIG5"編碼)。要自行指定編碼格式就必需改用其它物件(這邊改用上述文章介紹的InputStreamReader、OutputStreamWriter物件),底下就是改成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搭配的語法可算是有點眉目了,再多試幾個應用方式,也許可以用來解決一些本機上的資料處理方式。
沒有留言:
張貼留言