我正在从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