「java中获取文件类型的」java 获取文件属性
今天给各位分享java中获取文件类型的的知识,其中也会对java 获取文件属性进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java 传输 获取文件类型
获取文件类型,一般的是列出目前所有的文件类型,根据表头进行相应判断,示例如下:
/**
* 件头是位于文件开头的一段承担一定任务的数据,一般都在开头的部分。
* 头文件作为一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration),而定义文件用于保存程序的实现 (implementation)。
* 为了解决在用户上传文件的时候在服务器端判断文件类型的问题,故用获取文件头的方式,直接读取文件的前几个字节,来判断上传文件是否符合格式。具体代码如下:
* Java代码 :
*
*/
package com.yonyou.sud.file;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
/**
* 获取和判断文件头信息
*
* @author Sud
*
*/
public class GetTypeByHead {
//缓存文件头信息-文件头信息
public static final HashMapString, String mFileTypes = new HashMapString, 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("52617221", "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");
}
/**
* 根据文件路径获取文件头信息
*
* @param filePath
* 文件路径
* @return 文件头信息
*/
public static String getFileType(String filePath){
System.out.println(getFileHeader(filePath));
System.out.println(mFileTypes.get(getFileHeader(filePath)));
return mFileTypes.get(getFileHeader(filePath));
}
/**
* 根据文件路径获取文件头信息
*
* @param filePath
* 文件路径
* @return 文件头信息
*/
public static String getFileHeader(String filePath){
FileInputStream is = null;
String value = null;
try {
is = new FileInputStream(filePath);
byte[] b = new byte[4];
/*int read() 从此输入流中读取一个数据字节。
*int read(byte[] b) 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
* int read(byte[] b, int off, int len) 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
*/
is.read(b, 0, b.length);
value = bytesToHexString(b);
} catch (Exception e){
} finally {
if (null != is){
try {
is.close();
} catch (IOException e){
}
}
}
return value;
}
/**
* 将要读取文件头信息的文件的byte数组转换成string类型表示
*
* @param src
* 要读取文件头信息的文件的byte数组
* @return 文件头信息
*/
private static String bytesToHexString(byte[] src){
StringBuilder builder = new StringBuilder();
if (src == null || src.length = 0){
return null;
}
String hv;
for (int i = 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());
return builder.toString();
}
public static void main(String[] args)throws Exception {
final String fileType = getFileType("E:/Java编程思想读书笔记.docx");
System.out.println(fileType);
}
}
Java实现获取指定路径下的指定格式的文件
获取指定路径下的指定格式的文件
package filenameFilter;
import java io File;
/* * 实现功能 *
获取指定路径下的指定格式的文件
* */
public class Test {
public static void listPath(File file) {
// 接收筛选过后的文件对象数组
//用文件对象调用listFiles(FilenameFilter filter) 方法
//返回抽象路径名数组 这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录
File files[] = file listFiles(new MyFilenameFilter())
/*//遍历出指定文件路径下符合条件的文件
for (File f : files) {
System out println(f)
}*/
//遍历出指定文件路径下的所有符合筛选条件的文件
for(File f: files){
if(f isDirectory()){
listPath(f)
}else{
System out println(f)
}
}
}
public static void main(String[] args) {
// 创建指定目录的文件对象
File file = new File( F:\\test )
// 调用文件晒筛选的方法 并将文件对象出入
listPath(file)
} }
package filenameFilter;
import java io File;
import java io FilenameFilter;
//实现FilenameFilter接口 可用于过滤器文件名 //本方法实现的是筛选指定格式结尾的文件 public class MyFilenameFilter implements FilenameFilter {
/**
* @param args
*
*
实现功能 实现FilenameFilter接口 定义出指定的文件筛选器
*
*/
@Override
//重写accept方法 测试指定文件是否应该包含在某一文件列表中
public boolean accept(File dir String name) {
// TODO Auto generated method stub
// 创建返回值
boolean flag = true;
// 定义筛选条件
//endWith(String str) 判断是否是以指定格式结尾的
if (name toLowerCase() endsWith( jpg )) {
} else if (name toLowerCase() endsWith( txt )) {
} else if (name toLowerCase() endsWith( gif )) {
} else {
flag = false;
}
// 返回定义的返回值
//当返回true时 表示传入的文件满足条件
return flag;
}
lishixinzhi/Article/program/Java/hx/201311/26918
Java如何获取文件的内容类型
如果是要获取文件的类型格式的,先取得文件的名字,然后通过字符串截取(从最后一一个点开始截取)。
File file =new File("");
String fileName=File.getName();
fileName.subString(fileName.lastIndexOf("."));
Java中怎么获取文件类型
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
public class CheckFileType extends JFrame {
/**
*
*/
private static final long serialVersionUID = -6167144370965431657L;
private JPanel contentPane;
private JTextField textField;
private JTextArea textArea;
/**
* Create the frame.
*/
public CheckFileType() {
setTitle("\u5224\u65AD\u6587\u4EF6\u7C7B\u578B");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 501, 143);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel label = new JLabel("\u9009\u62E9\u6587\u4EF6\uFF1A");
label.setBounds(10, 10, 84, 15);
contentPane.add(label);
textField = new JTextField();
textField.setBounds(88, 2, 289, 30);
contentPane.add(textField);
textField.setColumns(10);
JButton button = new JButton("\u6D4F\u89C8\u2026\u2026");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
do_button_actionPerformed(e);
}
});
button.setBounds(389, 2, 90, 30);
contentPane.add(button);
textArea = new JTextArea();
textArea.setOpaque(false);
textArea.setEditable(false);
textArea.setLineWrap(true);
textArea.setBounds(83, 37, 396, 60);
contentPane.add(textArea);
}
protected void do_button_actionPerformed(ActionEvent e) {
Scanner scan = new Scanner(getClass()// 获取说明文件的扫描器 在文件中获得
.getResourceAsStream("extName.inf"));
JFileChooser chooser = new JFileChooser();// 创建文件选择器
boolean searched = false;
int option = chooser.showOpenDialog(this);// 打开文件选择对话框
if (option == JFileChooser.APPROVE_OPTION) {// 如果正确选择文件
File file = chooser.getSelectedFile();// 获取用户选择文件
textField.setText(file.getName());// 把文件名添加到文本框
String name = file.getName();// 获取文件名
while (scan.hasNextLine()) { // 遍历说明文件
String line = scan.nextLine();// 获取一行说明信息
String[] extInfo = line.split("\t");// 把单行说明信息拆分成数组
// 数组第一个元素是文件扩展名,与用户选择文件名对比
if (name.endsWith(extInfo[0])) {
// 第二个数组元素是文件类型的说明信息,添加到文本域控件中
textArea.setText(extInfo[1]);
searched = true;
}
}
scan.close();// 关闭扫描器
}
if (!searched) {// 如果没找到相关文件类型的说明,则提示用户
textArea.setText("你选择的文件类型没有相应记录,你可以在extName.info文件中添加该类型的描述。");
}
}
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
EventQueue.invokeLater(new Runnable() {
public void run() {
CheckFileType frame = new CheckFileType();
frame.setVisible(true);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}
辅助文件
.txt您选择的是计算机中的文本文件,值包含文本内容,没有特殊格式代码,用任何文档编辑器都可以打开。
.ini程序的配置文件,是针对某个应用程序所附带的配置信息。
.exeWindows系统中的可执行文件,是程序的入口,可以直接执行,不需要其他辅助工具。
.doc文档文件,Word97-2003都使用这种格式
.docx文档文件,Word2007采用这种格式。
.bmp位图图片文件,用于保存位图的图像,是Windows系统默认支持的一种图片格式。
.jpg压缩格式的图片文件,它的提及更小,更加利于网络传输或作为网页点缀。
.jpeg压缩格式的图片文件,它的提及更小,更加利于网络传输或作为网页点缀。
.dllWindows系统中的动态链接库文件,它是应用程序的扩展,为程序提供更多的功能模块。
.phpPhp开发的网页文件。
.jspJava开发的网页文件。
.javaJava语言的源代码文件。
.rar压缩文档文件,其格式为RAR,是一种非常流行的压缩格式,压缩率很高,而且可以为压缩文档设置密码,可以创建自解压的压缩文档。
java中获取文件类型的的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 获取文件属性、java中获取文件类型的的信息别忘了在本站进行查找喔。