前幾年以Java寫Mail Server上log檔的判斷程式,原本是gzip格式,後來FreeBSD改成bzip2,因此必須找個bzip2的library。
找到bzip2 library from Apache Ant,去修改原本的程式卻不work,一直說檔案應該是'h'開頭卻得到'B',bzip2檔案格式明明是BZ開頭呀?再深入去找到這才知道Ant的這個library只寫了一半,必須自己處理前兩個byte。所以讀的時候要處理成:
找到bzip2 library from Apache Ant,去修改原本的程式卻不work,一直說檔案應該是'h'開頭卻得到'B',bzip2檔案格式明明是BZ開頭呀?再深入去找到這才知道Ant的這個library只寫了一半,必須自己處理前兩個byte。所以讀的時候要處理成:
try {
InputStream is = new FileInputStream(infile);
is.read();
is.read();
BufferedReader br = new BufferedReader(new InputStreamReader(new CBZip2InputStream(is)));
真是太鳥了呀...
留言