www.gsyw.net > 如何判断某个文件是否为二进制文件,用JAvA代码来实现

如何判断某个文件是否为二进制文件,用JAvA代码来实现

很多文件是带有文件头的, 文件头不一定是文本格式, 如果你要把这样的文件排除在你所认为的“二进制文件”之外,就需要单独地识别每一类型的文件头.linux 系统中有个 file 命令,可以识别不同的文件类型, 建议你下载这个文件的源代码参考一下

下面转载一下别人的方法1、判断字符范围.该方式主要是针对英文字符的,如果文件中有中文字符就会判断失败.比如:char c; f.read(&c, sizeof(c)); if (c < 32 && c != 9 && c != 10 && c != 13) { return; } 该方式针对256以下的字符问题都不大,

不要用函数去处理文本类型,这样是很难完成或是根本无法完成.要处理文本类型,可以用正则表达式RegExp处理.如何使用正则表达式,就需要楼主百度一下了

判断是否存在控制字符:这个也靠谱,但是难度比较大,因为有些Unicode文件在开头放了控制字符,所以必须处理这种特殊情况.(我记得有些编辑器就是这样判断文件是否为二进制的)这些答案都算靠谱,也有不靠谱的.居然有人回答:文本终究也是二进制的,所以你没办法判断!NND,这就好像说:Women 本质上就是 Men(人),所以你没法判断 Women 和 Men (男人)言归正传,除了以上的三种方法外,如果要求不是那么严格,可以用文件的mime type来进行判断,以下的Groovy代码虽然不太直观,但是胜在短小:在Java下道理是一样的,先获得URL对象,然后打开连接,获取内容类型……只不过多写几行罢了.

/*** */ package com.igen.case10; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URISyntaxException;

inputstream 就是读取二进制文件的, 任何文件都可以用这个流来读, 也叫字节输入流

Java读取二进制文件,以字节为单位进行读取,还可读取图片、音乐文件、视频文件等,在Java中,提供了四种类来对文件进行操作,分别是InputStream OutputStream Reader Writer ,前两种是对字节流的操作,后两种则是对字符流的操作.

用正则表达式啊 值内包含1和0外的其他字符就不算

这个不应该靠判断数据去判断.应该另外增加一个叫content_type数据类型的数据库的列. 然后在存入时写上数据类型,比如按MIME类型application/word之类,也可以枚举节约空间. 读取时根据该列的类型,给出后缀名. 也可以直接把原后缀名存在某列中. 也可以把原文件名存在某列中,而原文件放在某位置,并不入库.

您好. 如果只是简单的复制、截取等操作,直接使用字节流对文件进行i/o操作就可以了; 一般判断一个文件是否是二进制文件,只是判断一下文件的内容中是否含有0x00-0x07这八个字符内容,如果有的话,就是二进制文件. 如果还有问题,可以继续追问,感谢.

网站地图

All rights reserved Powered by www.gsyw.net

copyright ©right 2010-2021。
www.gsyw.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com