我正在從FTP服務器下載XML。我必須爲我的SAX解析器做好準備。爲此,我需要刪除BOM字節並將其編碼爲UTF-8。但不知何故,它不適用於每個文件。下載xml,刪除bom並編碼utf8
這裏是我的兩個功能代碼:
public static void copy(File src, File dest){
try {
byte[] data = Files.readAllBytes(src.toPath());
writeAsUTF8(dest, skipBom(data));
} catch (IOException e) {
e.printStackTrace();
}
}
private static void writeAsUTF8(File out, byte[] data){
try {
FileOutputStream outStream = new FileOutputStream(out);
OutputStreamWriter outUTF = new OutputStreamWriter(outStream,"UTF8");
outUTF.write(new String(data, "UTF8"));
//outUTF.write(new String(data));
outUTF.flush();
outStream.close();
outUTF.close();
}
catch(Exception ex){
ex.printStackTrace();
}
}
private static byte[] skipBom(byte[] data){
int skipBytes = getBomSize(data);
byte[] tmp = new byte[data.length - skipBytes];
for(int x = 0; x < tmp.length; x++){
tmp[x] = data[x + skipBytes];
}
return tmp;
}
任何想法我做錯了什麼?
您是否嘗試過任何的想法,從[這個問題](http://stackoverflow.com/questions/1835430/byte-order -mark螺絲-UP-文件讀入的Java /)? – andyb