JAVA小技巧 判斷文字檔案使用的字符集

2021-06-01 14:05:31 字數 732 閱讀 9676

最近一段時間作東西,總是因為要處理可能不通字符集的檔案而煩心,雖然遭到乙個程式庫,好象是模仿mozilla的乙個c庫使用java實現的,但是普通的情況下使用這個庫是不是太大了點.於是將gbk作為預設編碼,主要判斷utf-8,我實現了乙個程式,在windows下邊如果使用記事本儲存的txt檔案帶有bom當然很方便,但是如果沒有bom的話,就只有通過檔案中的字元的編碼來判斷了,經過幾次簡單的實驗,發現尚且可用。java原始碼如下,懇請指正:

static string get_ set(file file)

else if(first3bytes[0] == (byte)0xfe && first3bytes[1] == (byte)0xff)

else if(first3bytes[0] == (byte)0xef && first3bytes[1] == (byte)0xbb && first3bytes[2] == (byte)0xbf)

bis.reset();

if (!checked) else if (0xe0 <= read && read <= 0xef) else

break;

} else

break;}}

system.out.println(loc + " " + integer.tohexstring(read));

}bis.close();

} catch (exception e)

return set;

}

C 判斷檔案是否文字檔案

今天fix bugs時,碰到乙個關於上傳檔案格式的問題。系統要求上傳.txt,csv格式的,這個可以根據檔案字尾名來過濾。但是如果使用者修改了字尾名來欺騙系統的話又該怎麼解決?比如a.jpg格式的改成a.txt,我現在的程式就無法識別了,雖然在後台可以彈出錯誤,但這個錯誤已經不是fs上定義的錯誤了。...

Java讀取超大文字檔案

近日由於相關業務,需要讀取乙個將近1g的檔案,然後將符合條件的資料insert進資料庫。而執行完程式之後,最後寫入資料庫的資料是將近100w條,在linux系統下執行時間將近3個小時,操作量還是上了乙個相當的規模。由於之前沒有進行過超大檔案的讀寫,一開始以為需要使用分布式系統等複雜的操作才能進行。後...

使用fscanf讀取文字檔案

fscanf為讀取文字檔案的乙個c api,其特點是可格式化讀取檔案內容。1 file pf fopen c hello.txt r 2if null pf 3return 4 5char cstr 256 6fscanf pf,s cstr 7fclose pf fscanf使用空格,tab,回車...