導航:首頁 > 編程語言 > 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
文件夾重命名改不了名稱怎麼辦 瀏覽:227
美國恐怖故事在哪個app 瀏覽:434
轉型代駕app哪個好用 瀏覽:208
java獲取文件的類型 瀏覽:782
國外電子教材系列pdf 瀏覽:887
手機解壓rap 瀏覽:667
單片機數據記錄 瀏覽:569
安卓手機怎麼語音控制刷視頻 瀏覽:890
共享文件夾只顯示目錄 瀏覽:96
邏輯學十五講pdf 瀏覽:751