ftp下载后,保存到本地的文件格式和服务器编码有关。
因此在读取文件时,获取文件的编码格式,再获取文件内容即可。
public class FileEncodingDetector {
public static String getFileEncoding(File file) throws IOException {
BufferedInputStream bin = new BufferedInputStream(new FileInputStream(file));
int p = (bin.read() << 8) + bin.read();
bin.close();
String code = null;
switch (p) {
case 0xefbb:
code = "UTF-8";
break;
case 0xfffe:
code = "Unicode";
break;
case 0xfeff:
code = "UTF-16BE";
break;
default:
code = "GBK";
}
return code;
}
}
使用
String fileEncoding = FileEncodingDetector.getFileEncoding(new File(cvsFilepath));
sc = new Scanner(inputStream, fileEncoding);
if (sc.hasNextLine()) {
String line = sc.nextLine();
}