Java通過InputStream判斷word格式)
1. 傳入inputStream文件流
2. 讀取文件流前八個(gè)字節(jié)到字節(jié)流數(shù)組中
byte[] byteArray = new byte[8];
inputStream.read(byteArray, 0, 8);
3. 轉(zhuǎn)為字符串
StringBuilder sb = new StringBuilder();
for (byte b : byteArray) {
sb.append(String.format("%02X", b));
}
4. 對比字符串判斷文件類型
if (hexString.startsWith("D0CF11E0A1B11AE1")) {
return "doc";
} else if (hexString.startsWith("504B030414000600")) {
return "docx";
} else {
return "unknown";
}
5. 完整代碼
/**
* 通過流判斷word格式
* @param inputStream
* @return
* @throws IOException
*/
public static String detectFileType(InputStream inputStream) throws IOException {
byte[] byteArray = new byte[8];
try{
inputStream.read(byteArray, 0, 8);
String hexString = bytesToHexString(byteArray);
if (hexString.startsWith("D0CF11E0A1B11AE1")) {
return "doc";
} else if (hexString.startsWith("504B030414000600")) {
return "docx";
} else {
return "unknown";
}
} finally {
if (inputStream !=null) {
inputStream.close();
}
}
}
private static String bytesToHexString(byte[] byteArray) {
StringBuilder sb = new StringBuilder();
for (byte b : byteArray) {
sb.append(String.format("%02X", b));
}
return sb.toString();
}
文章來源地址http://www.zghlxwxcb.cn/news/detail-607620.html
文章來源:http://www.zghlxwxcb.cn/news/detail-607620.html
到了這里,關(guān)于Java通過InputStream判斷word格式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!