当前位置:  开发笔记 > 编程语言 > 正文

如何检查文件是否为excel文件?

如何解决《如何检查文件是否为excel文件?》经验,为你挑选了1个好方法。

我正在编写一个程序,必须选择一个excel文件,该文件将由程序读取.我现在的问题是,如果文件是excel文件,怎么能证明?

在此方法中选择该文件:

JButton btnFile = new JButton("Select Excel File");
btnFile.setPreferredSize(new Dimension(40, 40));
btnFile.addActionListener(new ActionListener() {
    // Handle open button action.
    public void actionPerformed(ActionEvent e) {
        final JFileChooser fc = new JFileChooser();
        int returnVal = fc.showOpenDialog(frame);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            file = fc.getSelectedFile();
            // This is where a real application would open the file.
            System.out.println("File: " + file.getName() + ".");
        } else {
            System.out.println("Open command cancelled by user.");
        }
        System.out.println(returnVal);
    }
});

Bacteria.. 6

MimetypesFileTypeMap.getContentType(String)[JDK 6]

使用Java SE 6引入了MimetypesFileTypeMap类,以使用".mime.types格式"提供"通过文件扩展名对文件进行数据类型化".该类的Javadoc解释了在给定系统中类查找MIME类型文件条目的位置.我的示例使用了我的JDK 8安装开箱即用的示例.下一个代码清单演示了如何使用javax.activation.MimetypesFileTypeMap.

public String identifyFileTypeUsingMimetypesFileTypeMap(final String fileName)  
{      
   final MimetypesFileTypeMap fileTypeMap = new MimetypesFileTypeMap();  
   return fileTypeMap.getContentType(fileName);  
} 

Files.probeContentType(Path)[JDK 7]

Java SE 7引入了高度实用的Files类,该类的Javadoc简洁地描述了它的用法:"这个类只包含对文件,目录或其他类型文件进行操作的静态方法","在大多数情况下,这里定义的方法将委托给相关的文件系统提供程序来执行文件操作."

java.nio.file.Files类通过使用"已安装的FileTypeDetector实现"提供方法probeContentType(Path)"探测文件的内容类型"(Javadoc还指出"给定的Java虚拟机调用"维护一个系统范围的文件类型检测器列表").

public String identifyFileTypeUsingFilesProbeContentType(final String fileName)  
{  
   String fileType = "Undetermined";  
   final File file = new File(fileName);  
   try  
   {  
      fileType = Files.probeContentType(file.toPath());  
   }  
   catch (IOException ioException)  
   {  
      out.println(  
           "ERROR: Unable to determine file type for " + fileName  
              + " due to exception " + ioException);  
   }  
   return fileType;  
}  

有关详细信息,请访问此链接



1> Bacteria..:

MimetypesFileTypeMap.getContentType(String)[JDK 6]

使用Java SE 6引入了MimetypesFileTypeMap类,以使用".mime.types格式"提供"通过文件扩展名对文件进行数据类型化".该类的Javadoc解释了在给定系统中类查找MIME类型文件条目的位置.我的示例使用了我的JDK 8安装开箱即用的示例.下一个代码清单演示了如何使用javax.activation.MimetypesFileTypeMap.

public String identifyFileTypeUsingMimetypesFileTypeMap(final String fileName)  
{      
   final MimetypesFileTypeMap fileTypeMap = new MimetypesFileTypeMap();  
   return fileTypeMap.getContentType(fileName);  
} 

Files.probeContentType(Path)[JDK 7]

Java SE 7引入了高度实用的Files类,该类的Javadoc简洁地描述了它的用法:"这个类只包含对文件,目录或其他类型文件进行操作的静态方法","在大多数情况下,这里定义的方法将委托给相关的文件系统提供程序来执行文件操作."

java.nio.file.Files类通过使用"已安装的FileTypeDetector实现"提供方法probeContentType(Path)"探测文件的内容类型"(Javadoc还指出"给定的Java虚拟机调用"维护一个系统范围的文件类型检测器列表").

public String identifyFileTypeUsingFilesProbeContentType(final String fileName)  
{  
   String fileType = "Undetermined";  
   final File file = new File(fileName);  
   try  
   {  
      fileType = Files.probeContentType(file.toPath());  
   }  
   catch (IOException ioException)  
   {  
      out.println(  
           "ERROR: Unable to determine file type for " + fileName  
              + " due to exception " + ioException);  
   }  
   return fileType;  
}  

有关详细信息,请访问此链接

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有