也可以用文件名判断文件类型,但是读取文件的时候都是通过Stream来读取,不用判断文件的类型,比如读取.txt,.dat文件

解决方案 »

  1.   

    我是想要达到如下的效果:
    1、程序运行在一个支持JAVA的任意操作系统中时,我要操作一个文件,那么我应如何获取此文件的类型。
    2、如果用 freejacky(免费的杜松子酒) 兄的方法,在文件是文本格式时有效吗(对于Window中的文件格式有效吗?)
    3、star821116(冰冻三尺非一日之寒) 兄:我就是需要获取一个文件的文件类型。
      

  2.   

    用后缀判断是不太可靠的
    可靠的还是freejacky说的读头信息
    每个类型的文件都对应一个mimetype
    自己查查资料吧
      

  3.   

    2、如果用 freejacky(免费的杜松子酒) 兄的方法,在文件是文本格式时有效吗(对于Window中的文件格式有效吗?)
    你可以用ue打开一个文本文件看看它16进制的格式,你会有所发现的
      

  4.   

    windows下的文本文件有文件头的吗?
    用什么对象来读文件头?
    请教!
      

  5.   

    用ultraEdit打开,然后按ctrl+h
    unicode的文件前两个字节是FFFE
    java.awt.datatransfer.DataFlavor这个类不知道对你有没有帮助
      

  6.   

    不对!
    在Windows下的文本文件格式没有文件头,我是说纯文本文件
    我需要的是在所有支持java的系统上识别文件的类型
    比如说
    test.java文件在windows下是纯文本文件
    test.htm文件在windows下是纯文本文件
    那么我怎样才能识别它们的类型?
      

  7.   

    我觉得那应该是不可能实现的。比如,我可以手动将你的test.htm改成test.jar,或者将test.exe改成text.txt,那么windows就认不出来了,其他的系统也是如此。除非你指定用哪个程序尝试去解释它。即使是系统去辨认,也要有一分列表,你自己要做也是如此
      

  8.   

    真的没办法解决吗?
    郁闷!
    回 NewStarter(沧海一笑$独孤求胜) 兄:
    通过后缀名在linux中行不通
      

  9.   

    纯文本文件的识别,应该只能通过后缀吧
    如果一个java文件,你把后缀改成txt,那你还想当java去用吗?
    JDK首先就会说你错了吧,呵呵
    如果你想把纯文本的文件也识别的很清楚,估计你就要做一个很庞大的识别系统了
    怕怕ing
      

  10.   

    如果只是想得到诸如
    "文本文件", "bmp位图文件"这样的信息,可以使用javax.swing.filechooser.FileSystemView.getFileSystemView().getSystemTypeDescription(File);就可以像在os里一样显示出该后缀名的文件的信息,
    如果要确实判断这个文件是否就是这种类型,是不是再挂羊头卖狗肉,只有读了才知道
      

  11.   

    还是shine333(shine)兄高明,我就要这个结贴了!