当前页面: 开发资料首页 → Java 专题 → 如何在java中获得excel和word的文件类型?
如何在java中获得excel和word的文件类型?
摘要: 如何在java中获得excel和word的文件类型?
我已经获得了fileInputStream,如何根据fileInputStream知道我当前的fileInputStream是WORD还是excel文件类型?文件名不可做为判断标准,因为文件名都是bit类型的。
那你得知道word和excel文件的开头格式。微软好像没有公开吧,你在网上查查吧。
请不要笑小弟,不知道这种方法可以不
用FileInputStream的read()方法(返回为int) 读前面一串数字,(最好加上Integer.toHexString()把串压缩一下),会得到一串字符串:
WORD为:
d0cf11e0a1b11ae100000000000000003e030feff906000000000001000220000000010002400010
00feffffff000021000ffffffffffffffffffffffffffffffffff(后面还有很多,主要是比较前面一串就行了)
EXCEL为:
d0cf11e0a1b11ae100000000000000003e030feff90600000000000100019000000001000fefffff
f0000feffffff000018000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
前面已有不同.对比就行了.
import java.io.*;
public class c
{
public static void main(String[] args) throws Exception
{
FileInputStream fis = new FileInputStream(new File("C:/a.bit"));
String Excel="d0cf11e0a1b11ae100000000000000003e030feff90600000000000100019000000001000fefffff";
StringBuffer sb=new StringBuffer();
for(int i=0;i
{
sb.append(Integer.toHexString(fis.read()));
}
if(sb.toString().substring(0,Excel.length()).equals(Excel)) System.out.println("是EXCEL文件");
else System.out.println("不是EXCEL文件");
}
}
这样写就能分别出来了/
谢谢两位。