前に文字コード判別したときはアンドロイドスタジオだったので、eclipseも同じようにできるかなと思ったができなかった。アンドロイド用とパソコン用では書き方が違うようだ。同じような書き方でできる方法もあるだろうけどよくわからない。
なので、やり方としてはjuniversalchardet公式の方法に則ってやってみることに。
InputStream is = AozoraEpub3.getTextInputStream(srcFile, ext, imageInfoReader, textEntryName, txtIdx);
InputStream is;
String cs;
cs = Detector.getCharset(is);
if (encType.equals("")) encType =cs;
公式のサンプルコードでは、ファイル名を指定するだけで読み込んでくれたり判別してくれるようだ。ただ、文字コードを指定して読み込むパターンもほしいので、読み込むまではしなくていい。
qiitaにもサンプルコードがあったがライセンスがわからないのでやめておいた。よく見ると公式サンプルを少し改変しただけのように見える。
android studioではかんたんだったライブラリの読み込みも、ファイルをダウンロードをする必要があったりして少し手間な感じである。
コマンドライン実行用AozoraEpub3のクラスを見ていくと。どこで、圧縮ファイルからテキストを取り出しているのかを見ていた。getTextInputStreamのクラスを使うとテキストをInputStreamを返すようなのだが、どうもそのままでは使いづらかった。なのでそれを書き換えて、getTextCharsetというのを作ってテキストファイルの文字コードをString形式で返すクラスを作った。
/** コマンドライン実行用 */
main
/** 出力ファイルを生成 */
getoutfile
/** 前処理で一度読み込んでタイトル等の情報を取得 */
getbookinfo
/** ファイルを変換
convertfile
/** 入力ファイルからStreamオープン
getTextInputStream