通过读取文件头部判断是否为CSV格式文件
2014-11-30 20:30
3631 查看
通过读取文件头部判断是否为CSV格式文件
通过读取CSV文件头,判断文件是是否属于CSV文件类型,一般而言仅仅只是通过文件后缀来判断该文件所属的类型,这样是不合理的,只要更改一下文件后缀就无法识别这个文件到底是不是正确的文件格式,把可执行的文件后缀改为.CSV如果是通过判断文件后缀来识别文件类型,这样肯定是行不通的,因为exe的文件格式肯定不是CSV的格式,如果提前判断出这个文件头的这样就能定位这个文件是不是我们所需要的文件类型,避免对错误的文件进行解析。同样也可以在某种程度上保护服务器的安全。/* * System Abbrev : * system Name : * Component No : * Component Name: * File name :Util.java * Author :Qiuzhenping * Date :2014-11-30 * Description : <description> */ /* Updation record 1: * Updation date : 2014-11-30 * Updator : Qiuzhenping * Trace No: <Trace No> * Updation No: <Updation No> * Updation Content: <List all contents of updation and all methods updated.> */ package com.qiuzhping.util; import java.io.FileInputStream; /** * <Description functions in a word> * 通过读取CSV文件头,判断文件是是否属于CSV文件类型,一般而言仅仅只是通过文件后缀来判断该文件所属的类型, * 这样是不合理的,只要更改一下文件后缀就无法识别这个文件到底是不是正确的文件格式,把可执行的文件后缀改为.CSV * 如果是通过判断文件后缀来识别文件类型,这样肯定是行不通的,因为exe的文件格式肯定不是CSV的格式,如果提前判断 * 出这个文件头的这样就能定位这个文件是不是我们所需要的文件类型,避免对错误的文件进行解析。同样也可以在某种程度上 * 保护服务器的安全。 * <Detail description> * * @author Qiuzhenping * @version [Version NO, 2014-11-30] * @see [Related classes/methods] * @since [product/module version] */ public class Util { /** <Description functions in a word> * Bytes to Hex String * 将字节数组转换成16进制字符串 * <Detail description> * @author Qiuzhenping * @param src * @return [Parameters description] * @return String [Return type description] * @exception throws [Exception] [Exception description] * @see [Related classes#Related methods#Related properties] */ public static String bytes2HexString(byte[] src) { StringBuilder stringBuilder = new StringBuilder(); if (src == null || src.length <= 0) { return null; } for (int i = 0; i < src.length; i++) { int v = src[i] & 0xFF; String hv = Integer.toHexString(v); if (hv.length() < 2) { stringBuilder.append(0); } stringBuilder.append(hv); } System.out.println(" bytes2HexString = "+stringBuilder.toString().toUpperCase()); return stringBuilder.toString().toUpperCase(); } /** <Description functions in a word> * Judge this FileInputStream is csv file * 判断该文件流头部是否包含有指定的信息,从而确认该文件是不是正确的文件类型 * <Detail description> * @author Qiuzhenping * @param is * @return [Parameters description] * @return boolean [Return type description] * @exception throws [Exception] [Exception description] * @see [Related classes#Related methods#Related properties] */ public static boolean judgeIsCSV(FileInputStream is){ try { byte[] b = new byte[4]; is.read(b, 0, b.length); return bytes2HexString(b).contains("5B75726C");//CSV文件的头部的前4个字节 } catch (Exception e) { e.printStackTrace(); } return false; } public static void main(String[] args) throws Exception { String src = "C:/dataTemp/Url使用.csv"; FileInputStream is = new FileInputStream(src); System.out.println(judgeIsCSV(is)); src = "C:/dataTemp/Url使用.csv"; is = new FileInputStream(src); System.out.println(judgeIsCSV(is)); } }转载请注明:http://blog.csdn.net/qiuzhping/article/details/41626295
相关文章推荐
- python通过串口读取GPS NMEA格式的数据,并保存为csv文件
- 通过读取文件内容判断图片格式的方法
- 校验出生日期,校验身份证格式,校验会员账户:9开头数字,校验手机号码是否合法,判断字符串中的url是否都是图片格式字符串,通过图片url读取图片并将图片转换成base64编码
- 如何判断图形文件的格式是否是JPEG呢?
- vba中读取utf-8格式的csv文件保证不乱码
- 通过文件锁实现,程序开始运行时,先判断文件是否存在,若存在则表明该程序已经在运行了,如果不存在就用open函数创建该文件,程序退出时关闭文件并删除文件
- 不通过扩展名判断图像文件格式
- 通过以二进制方式读取文件 判断文件头得到图片类型 ,上面通过拓展名有缺陷。
- 读取二进制文件判断是否文件尾
- 通过URL判断文件是否有存在
- iphone 判断文件是否存在,如果不存在就从Bundle里面读取
- 【Hex 格式文件操作】二、判断是否为有效的intel_hex文件,并进行数据校验
- 【批处理】读取hosts文件 判断是否有制定字符
- 监测程序详细介绍,快捷键的设置;txt文件里面一行行的读取、删除、添加字符串等;根据程序路径名以及程序名判断程序是否在运行;
- 9-18 ASP第二讲实现数据的真实操作,从txt文件中读取进行校对,判断登陆是否成功
- PHP - Manual手册 - XL. Filesystem 文件系统函数 - is_uploaded_file判断文件是否是通过 HTTP POST 上传的
- 【ASP】通过fso判断文件是否存在
- C# winfrom判断文件是否存在,不存在则创建,否则读取值显示到窗体
- 判断上传的图片文件格式是否合法--不是用后缀做的判断
- shell 判断文件是否存在 并且 循环读取