`

Java判断文件类型是二进制文件还是文本文件

    博客分类:
  • java
阅读更多
1.根据后缀名,这个就是简单的字符串匹配,由于存在改名情况,基本无用

2.根据文件流中是否存在0x00-0x07这八个字符,如果存在说明是二进制文件,需要读取整个文件去判断,感觉效率太低

3.通过javax.activation.MimetypesFileTypeMap这个类来实现,它是通过直接与系统交互来实现的,感觉比上面两个要好

 
void addMimeTypes(String mime_types)     // 将 MIME 类型值预先添加到注册表。 
String getContentType(File f)            // 返回该文件对象的 MIME 类型。 
String getContentType(String filename)   // 返回基于指定文件名的 MIME 类型。

// 使用
File f = new File("文件路径");
new MimetypesFileTypeMap().getContentType(f); 
// 结果举例:
// 1.txt             ->  text/plain
// 无后缀名的文本文件  ->  application/octet-stream;
// jpg图片格式文件     ->  image/jpeg;


它提供的类型比较少,但是可以通过方法给它添加类型
new MimetypesFileTypeMap().addMimeTypes("application/pdf pdf");



分享到:
评论
1 楼 jspc 2012-02-01  
学习,了解,试试看,行不
:idea:

相关推荐

    java判断一个文件是否为二进制文件的方法

    二进制文件与文本文件的主要区别在于它们的数据存储方式:二进制文件通常包含非打印字符,如图像、音频、视频等非文本数据,而文本文件则由可读的字符组成,如ASCII或Unicode编码的字符。 上述代码提供了一个简单的...

    java 判断二进制文件的方法

    二进制文件与文本文件的主要区别在于它们的数据编码方式。文本文件通常使用字符编码(如ASCII或UTF-8),而二进制文件则包含任何可能的字节序列,可能包含非打印字符和特殊控制字符。以下是一个简单的Java方法,用于...

    JAVA文本去重查重判断文件重复工具程序源代码 查重是指对文本、论文、作业等进行重复率检测,以防止学术不端和抄袭 查重主要是通过

    JAVA文本去重查重判断文件重复工具程序源代码 查重是指对文本、论文、作业等进行重复率检测,以防止学术不端和抄袭。查重主要是通过计算机程序对文本进行比对,发现文本中相似或完全相同的部分,生成重复率报告。 ...

    JAVA实现文件类型预处理

    例如,从二进制文件转换为文本格式,或者将不同编码的文本文件统一为标准编码(如UTF-8)。Java的InputStreamReader和OutputStreamWriter可以处理字符编码,而ObjectInputStream和ObjectOutputStream则用于序列化和...

    Java源代码打开指定类型的文件.rar

    在Java编程中,打开指定类型的文件是常见的任务,这通常涉及到文件I/O操作以及文件路径处理。本资源“Java源代码打开指定类型的文件.rar”包含了实现这一功能的示例代码,我们将深入探讨如何在Java中处理这个需求。 ...

    判断文本文件是否为UTF-8编码

    1. ASCII字符(包括英文、数字和部分标点符号)使用单字节表示,其二进制形式与ASCII编码相同,最高位为0。 2. 对于非ASCII字符,UTF-8使用多字节序列表示,每个字节的最高位为1,并按照特定规则组合形成字符编码。 ...

    javacore文件及heapdump文件分析

    heapdump 文件是一个二进制文件,保存了某一时刻 JVM 堆中对象的情况。heapdump 文件可以帮助我们分析系统是否存在内存溢出的情况,通过 heap analyzer 工具可以简单地分析出溢出的位置。 这两个文件也可以手工生成...

    java识别文件编码格式

    在Java编程语言中,识别文件编码格式是一项重要的任务,特别是在处理不同来源的文本文件时。在没有第三方JAR包的情况下,我们通常需要依赖Java内置的API来实现这一功能。以下是一些关键知识点: 1. **字符编码**:...

    数据导出EXCEL 解决中文名乱码 同时赠由二进制转换成文件(解决中文名乱码)

    根据上下文信息或先前的知识,判断文件原本是GBK、UTF-8还是其他编码。 3. **解码二进制数据**:使用适当的编程语言(如Python、Java、C#)或在线工具将二进制数据解码回文本。例如,在Python中,可以使用`bytes....

    java 获取文件编码

    在Java编程语言中,获取文件编码是一个常见的任务,特别是在处理文本文件时,了解正确的编码格式至关重要,因为不同的编码方式会影响字符的表示和解析。本文将深入探讨如何在Java中识别和处理不同类型的文本编码,如...

    二进制串模糊搜索的Java实现0.11

    在IT领域,二进制串模糊搜索是一种非常重要的技术,特别是在大数据分析、文本处理和搜索引擎优化中。本文将深入探讨二进制串模糊搜索的Java实现,基于标题"二进制串模糊搜索的Java实现0.11",以及描述中提及的链接,...

    Java解析fsn文件

    `BufferedReader`或`InputStreamReader`可以用来逐行读取文本文件,而`FileInputStream`则适合处理二进制文件。如果FSN文件是二进制格式,我们可能需要使用`DataInputStream`或`BufferedInputStream`来读取字节流。 ...

    SEGY数据文件读取解析程序

    2. **数据解析**:程序需要识别并处理SEGY文件中的二进制数据,这通常涉及到字节序的处理(Big-Endian或Little-Endian)和数据类型的转换。 3. **VTK集成**:利用VTK的类库,将解析出的地震数据转化为VTK兼容的数据...

    java文件上传ar包

    这种请求允许在一个请求中发送多个不同类型的数据,如文本字段和二进制文件。在HTML表单中,通过设置`enctype="multipart/form-data"`属性启用多部分请求。 5. **文件上传步骤**: - 创建一个Servlet或Filter来...

    java文件流

    Java文件流 Java中的输入输出是以流...在 Java 中,流可以分为字节流和字符流,字节流用于处理二进制文件,而字符流用于处理文本文件。同时,Java 中还提供了多种方式来操作文件,如使用 File 类、字节流、字符流等。

    获取文件类型.rar

    这时,我们可以利用文件的二进制头信息来识别类型。例如,JPEG图像文件的开头是"FF D8 FF E0",可以通过读取文件前几个字节并比对来判断: ```python with open("image.jpg", "rb") as f: header = f.read(4) if ...

    java 模拟windows文件操作

    - **读取文件**: 可以使用`BufferedReader`或`Scanner`读取文本文件,`FileInputStream`读取二进制文件。例如,`new BufferedReader(new FileReader(file))`可以创建一个读取文件的BufferedReader对象。 - **写入...

    java简单文件管理系统源码.zip

    Java提供了多种类型的流,如字节流(InputStream和OutputStream)用于处理二进制数据,字符流(Reader和Writer)用于处理文本数据。File类是文件操作的基础,可以用来创建、删除、重命名文件或获取文件信息。 2. **...

    求出10万以内的所有素数,并输出到 一个文本文件中,每行文本只包含一个素数数据;然后再判断这些素数中哪些是由素数拼接而成的,全部打印出来,并统计个数。

    一个文本文件中,每行文本只包含一个素数数据。 2. 编写程序求出10万以内的所有素数,然后再判断这些素数中 哪些是由素数拼接而成的。例如素数23就符合条件, 23本身是素数,其由素数2,和素数3拼接(连接)组成...

    android文件的创建、删除、 读写、 判断是否操作、文件MD5

    - **读取文件**:可以使用`BufferedReader`或`InputStreamReader`结合`FileReader`来读取文本文件,或者使用`InputStream`和`FileOutputStream`处理二进制文件。以下是一个简单的文本读取示例: ```java try ...

Global site tag (gtag.js) - Google Analytics