导航:首页 > 编程语言 > java获取文件的类型

java获取文件的类型

发布时间:2024-10-26 08:11:21

java 传输 获取文件类型

获取文件类型,一般的是列出目前所有的文件类型,根据表头进行相应判断,示例如下:

/**
*件头是位于文件开头的一段承担一定任务的数据,一般都在开头的部分。
*头文件作为一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration),而定义文件用于保存程序的实现(implementation)。
*为了解决在用户上传文件的时候在服务器端判断文件类型的问题,故用获取文件头的方式,直接读取文件的前几个字节,来判断上传文件是否符合格式。具体代码如下:
*Java代码:
*
*/
packagecom.yonyou.sud.file;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.util.HashMap;
/**
*获取和判断文件头信息
*
*@authorSud
*
*/
publicclassGetTypeByHead{
//缓存文件头信息-文件头信息
publicstaticfinalHashMap<String,String>mFileTypes=newHashMap<String,String>();
static{
//images
mFileTypes.put("FFD8FF","jpg");
mFileTypes.put("89504E47","png");
mFileTypes.put("47494638","gif");
mFileTypes.put("49492A00","tif");
mFileTypes.put("424D","bmp");
//
mFileTypes.put("41433130","dwg");//CAD
mFileTypes.put("38425053","psd");
mFileTypes.put("7B5C727466","rtf");//日记本
mFileTypes.put("3C3F786D6C","xml");
mFileTypes.put("68746D6C3E","html");
mFileTypes.put("44656C69766572792D646174653A","eml");//邮件
mFileTypes.put("D0CF11E0","doc");
mFileTypes.put("5374616E64617264204A","mdb");
mFileTypes.put("252150532D41646F6265","ps");
mFileTypes.put("255044462D312E","pdf");
mFileTypes.put("504B0304","docx");
mFileTypes.put("7221","rar");
mFileTypes.put("57415645","wav");
mFileTypes.put("41564920","avi");
mFileTypes.put("2E524D46","rm");
mFileTypes.put("000001BA","mpg");
mFileTypes.put("000001B3","mpg");
mFileTypes.put("6D6F6F76","mov");
mFileTypes.put("3026B2758E66CF11","asf");
mFileTypes.put("4D546864","mid");
mFileTypes.put("1F8B08","gz");
}
/**
*根据文件路径获取文件头信息
*
*@paramfilePath
*文件路径
*@return文件头信息
*/
publicstaticStringgetFileType(StringfilePath){
System.out.println(getFileHeader(filePath));
System.out.println(mFileTypes.get(getFileHeader(filePath)));
returnmFileTypes.get(getFileHeader(filePath));
}
/**
*根据文件路径获取文件头信息
*
*@paramfilePath
*文件路径
*@return文件头信息
*/
(StringfilePath){
FileInputStreamis=null;
Stringvalue=null;
try{
is=newFileInputStream(filePath);
byte[]b=newbyte[4];
/*intread()从此输入流中读取一个数据字节。
*intread(byte[]b)从此输入流中将最多b.length个字节的数据读入一个byte数组中。
*intread(byte[]b,intoff,intlen)从此输入流中将最多len个字节的数据读入一个byte数组中。
*/
is.read(b,0,b.length);
value=bytesToHexString(b);
}catch(Exceptione){
}finally{
if(null!=is){
try{
is.close();
}catch(IOExceptione){
}
}
}
returnvalue;
}
/**
*将要读取文件头信息的文件的byte数组转换成string类型表示
*
*@paramsrc
*要读取文件头信息的文件的byte数组
*@return文件头信息
*/
(byte[]src){
StringBuilderbuilder=newStringBuilder();
if(src==null||src.length<=0){
returnnull;
}
Stringhv;
for(inti=0;i<src.length;i++){
//以十六进制(基数16)无符号整数形式返回一个整数参数的字符串表示形式,并转换为大写
hv=Integer.toHexString(src[i]&0xFF).toUpperCase();
if(hv.length()<2){
builder.append(0);
}
builder.append(hv);
}
System.out.println(builder.toString());
returnbuilder.toString();
}
publicstaticvoidmain(String[]args)throwsException{
finalStringfileType=getFileType("E:/Java编程思想读书笔记.docx");
System.out.println(fileType);
}
}

⑵ java如何获取文件信息

File 类是对文件和文件夹的抽象,包含了对文件和文件夹的多种属性和操作方法。File类的常用方法如下表:

返回
方法
说明

String getName 获取文件名称
String getParent 获取文件的父路径字符串
String getPath 获取文件的相对路径字符串
String getAbsolutePath 获取文件的绝对路径字符串
boolean exists 判断文件或者文件夹是否存在
boolean isFile 判断是不是文件类型
boolean isDirectory 判断是不是文件夹类型
boolean delete 删除文件或文件夹,如果删除成功返回结果为true
boolean mkdir 创建文件夹,创建成功返回true
boolean setReadOnly 设置文件或文件夹的只读属性
long length 获取文件的长度
long lastModified 获取文件的最后修改时间
String[ ] list 获取文件夹中的文件和子文件夹的名称,并存放到字符串数组中

⑶ java怎么获取resources下的文件路径

要获取Java中的resources下的文件路径,主要有三种常见的文件操作:读取XML文件、读取TXT文件和读取CSV文件。

对于XML文件,首先,你需要创建一个DocumentBuilderFactory对象,然后利用DocumentBuilder解析指定路径的XML文件(例如:`DocumentBuilderFactory factory = ...; DocumentBuilder builder = ...; Document document = builder.parse(xmlFile);`)。接着,通过`getElementsByTagName()`方法获取指定标签的节点集合,遍历每个节点获取其属性(`NodeList nodeList = ...; for (Node node : nodeList) { ... }`)。在操作某个Node时,需要确保先将其转换为Element对象。

TXT文件通常以键值对的形式存储,例如`name=jack sex=boy`。你可以通过创建File对象并指定相对路径,获取文件的完整路径,然后使用特定类(如`readConfig`)读取文件内容,通过键获取对应的值,如`String name = config.get("name");`。

CSV文件则以表格形式存储数据,每列对应一个属性。使用Java,你可以逐行读取文件,例如使用CSV解析库,遍历每一行并获取每个单元格的值。
总的来说,获取resources下文件路径并读取内容,需要根据文件类型选择合适的解析方法,确保路径设置正确,然后进行数据读取和处理。

⑷ java怎么获取文件的mime类型

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。这是我在网络上摘抄的一段介绍,具体大家可以去网络查阅。
好,我们现在就来看看如何使用java获取文件的Content-Type的值,那么按照我的习惯,先来上代码:

30
import java.io.IOException;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;/** * 测试类 * @author ZY * */public class MIME_Demo { public static void main(String[] args) throws Exception { System.out.println(getContentType("F:/test.png")); System.out.println(getContentType("F:/2.doc")); System.out.println(getContentType("F:/2.csv")); System.out.println(getContentType("F:/LiveUpdate.exe")); System.out.println(getContentType("F:/1.txt")); System.out.println(getContentType("F:/demo.jpg")); } public static String getContentType(String filename){ String type = null; Path path = Paths.get(filename); try { type = Files.probeContentType(path); } catch (IOException e) { e.printStackTrace(); } return type; }}

这段代码的执行结果为:
image/png
application/msword
application/vnd.ms-excel
application/x-msdownload
text/plain
image/jpeg

⑸ java web 怎么识别文件的类型

java web识别文件的类型是通过文件后缀识别的。

1、写一个识别文件类型的方法:

public String (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 + " e to exception " + ioException);

}

return fileType;

}

2、最常见的文件类型:

阅读全文

与java获取文件的类型相关的资料

热点内容
回眸pdf 浏览:707
iwebsns源码 浏览:201
python实现自动发送微信消息 浏览:501
如何编译出你好两个字 浏览:345
博途编译意思 浏览:696
java的sort函数 浏览:203
切面编程抛出异常 浏览:72
csr的文件怎么解压 浏览:712
解压带制作过程 浏览:148
易语言编译时不小心删除怎么恢复 浏览:848
文件夹重命名改不了名称怎么办 浏览:228
美国恐怖故事在哪个app 浏览:434
转型代驾app哪个好用 浏览:209
java获取文件的类型 浏览:783
国外电子教材系列pdf 浏览:888
手机解压rap 浏览:667
单片机数据记录 浏览:569
安卓手机怎么语音控制刷视频 浏览:890
共享文件夹只显示目录 浏览:96
逻辑学十五讲pdf 浏览:752