最近一段時間作東西,總是因為要處理可能不通字符集的檔案而煩心,雖然遭到乙個程式庫,好象是模仿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,回車...