中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
java獲得U盤根目錄、讀取圖片視頻頭文件信息、獲取視頻時(shí)長(zhǎng)

http://blog.csdn.net/harderxin/article/details/21162741

http://blog.csdn.net/harderxin/article/details/21162741?utm_source=tuicool&utm_medium=referral

1、獲得U盤根目錄,例如我們?nèi)∶鸘盤名稱為"測(cè)試U盤",一般插入U(xiǎn)盤后,在系統(tǒng)的H盤

  1. /** 
  2.  * 得到系統(tǒng)U盤根目錄 
  3.  */  
  4. public String findURootPath(){  
  5.     FileSystemView sys = FileSystemView.getFileSystemView();  
  6.     //循環(huán)盤符  
  7.     File[] files = File.listRoots();   
  8.     for(File file:files){  
  9.         //得到系統(tǒng)中存在的C:\,D:\,E:\,F:\,H:\  
  10.         System.out.println("系統(tǒng)中存在的"+file.getPath());  
  11.     }  
  12.     File file = null;  
  13.     String path = null;  
  14.        for(int i = 0; i < files.length; i++) {   
  15.         //得到文字命名形式的盤符系統(tǒng) (C:)、軟件 (D:)、公司文檔 (E:)、測(cè)試U盤 (H:)  
  16.         System.out.println("得到文字命名形式的盤符"+sys.getSystemDisplayName(files[i]));  
  17.            if(sys.getSystemDisplayName(files[i]).contains("測(cè)試U盤")){  
  18.             file = files[i];  
  19.             break;  
  20.            }  
  21.        }  
  22.        if(file!=null){  
  23.         path = file.getPath();  
  24.        }  
  25.        return path;  
  26. }  


測(cè)試后獲得的U盤路徑為:H:\

2、獲得圖片頭文件信息和拍照時(shí)間

  1. /** 
  2.  * 獲取圖片頭文件信息,封裝為一個(gè)Map數(shù)據(jù)保存 
  3.  */  
  4. public static Map<String,String> getImageInfo(File file){  
  5.     Map<String,String> map = new HashMap<String, String>();  
  6.     if(file!=null){  
  7.         try{  
  8.             Metadata metadata = JpegMetadataReader.readMetadata(file);  
  9.             ExifIFD0Directory exifIFD0Directory = metadata.getDirectory(ExifIFD0Directory.class);  
  10.             //獲得圖片頭文件信息  
  11.             map.put("software", exifIFD0Directory.getDescription(ExifIFD0Directory.TAG_SOFTWARE));  
  12.             ExifSubIFDDirectory subIFDDirectory = metadata.getDirectory(ExifSubIFDDirectory.class);  
  13.             //獲得圖片系統(tǒng)拍照時(shí)間  
  14.             map.put("time", subIFDDirectory.getDescription(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL));  
  15.         }catch (Exception e) {  
  16.             e.printStackTrace();  
  17.         }  
  18.     }  
  19.     return map;  
  20. }  

測(cè)試代碼:

  1. Map<String,String> map = getImageInfo(new File("F:\\test\\111.JPG"));  
  2. System.out.println(map.get("software")+"--"+map.get("time"));  

得到信息:2.3.6--2014:02:09 10:16:09,我們有些硬件拍照,有時(shí)候要與軟件相結(jié)合,這個(gè)時(shí)候,我們可以把信息放在圖片的頭文件信息中,方便我們軟件進(jìn)行處理!

3、獲取視頻頭文件信息,是將其轉(zhuǎn)為文件流的形式進(jìn)行讀取

  1. /** 
  2.  * 獲取頭文件信息--以文件流的形式讀取視頻文件,Byte數(shù)組獲取頭文件 
  3.  *   循環(huán)數(shù)組,轉(zhuǎn)換為char類型,解析得到頭文件  
  4.  * @param filepath 
  5.  * @throws IOException 
  6.  */  
  7. public static String getFileHeadInfo(File file){  
  8.     try{  
  9.       FileInputStream fis =  new FileInputStream(file);  
  10.       byte[] b = new byte[300];  
  11.       StringBuilder sb = new StringBuilder();  
  12.       fis.read(b,0,300);    
  13.       for (int i = 0; i < b.length; i++) {  
  14.           sb.append((char)(Integer.parseInt(b[i]+"")));  
  15.       }  
  16.       fis.close();  
  17.         
  18.       String temp = sb.toString().toUpperCase();  
  19.       int offset = sb.indexOf("SQ");  
  20.       return temp.substring(offset, offset+50).trim();  
  21.     }catch(Exception e){  
  22.         e.printStackTrace();  
  23.         return null;  
  24.     }  
  25. }  


測(cè)試代碼:

  1. String result = getFileHeadInfo(new File("F:\\test\\151751.AVI"));  
  2. System.out.println(result);  

得到信息:
SQ909_5530900991_100000111220003,同理,當(dāng)我們視頻中有信息需要給我們軟件使用的時(shí)候,可以把信息放到視頻的頭文件信息中

3、獲取視頻時(shí)長(zhǎng)

  1. /** 
  2.  * 獲取視頻時(shí)長(zhǎng) 
  3.  */  
  4. public static double getVideoTime(File file){  
  5.     double time = 0.0;  
  6.     Encoder encoder = new Encoder();  
  7.        try {  
  8.             MultimediaInfo m = encoder.getInfo(file);  
  9.             long ls = m.getDuration();  
  10.             time = Double.parseDouble(new DecimalFormat("#.00").format(ls/(1000*60.0)));  
  11.             return time;  
  12.        } catch (Exception e) {  
  13.            e.printStackTrace();  
  14.            return 0.0;  
  15.        }  
  16. }  

測(cè)試代碼:

  1. double d=getVideoTime(new File("F:\\test\\151751.AVI"));  
  1. System.out.println("視頻時(shí)長(zhǎng)---"+d);  

得到相應(yīng)的視頻時(shí)長(zhǎng)信息:視頻時(shí)長(zhǎng)---0.51
4、獲取文件在電腦盤符上的創(chuàng)建時(shí)間

  1. /** 
  2.  * 獲取文件在盤符中創(chuàng)建時(shí)間,指的是文件被移動(dòng)到指定文件下的時(shí)間 
  3.  * 例如一張圖片,我的拍攝時(shí)間為:2014-02-13 09:23:21 
  4.  * 當(dāng)我將其移動(dòng)到電腦上F:\\test盤符下的時(shí)間為:2014-03-20 19:35:28 
  5.  * 此方法返回的時(shí)間為:2014-03-20 19:35:28 
  6.  * @param file 
  7.  * @return 
  8.  */  
  9.    public static String getFileCreateDate(File file) {  
  10.     try {  
  11.         String filePath = file.getAbsolutePath();  
  12.         Process ls_proc = Runtime.getRuntime().exec("cmd.exe /c dir " + filePath + " /tc");  
  13.         BufferedReader br = new BufferedReader(new InputStreamReader(ls_proc.getInputStream()));  
  14.         for (int i = 0; i < 5; i++) {  
  15.             br.readLine();  
  16.         }  
  17.         String result = br.readLine();  
  18.         br.close();  
  19.         String[] array = result.split("\\s+");  
  20.         String date = array[0].replaceAll("/", "-");  
  21.         String time = array[1];  
  22.         return date.concat(" ").concat(time);  
  23.     } catch (Exception e) {  
  24.         return null;  
  25.     }  
  26. }  

測(cè)試相應(yīng)的文件,都可以得到相應(yīng)的時(shí)間:

  1. result = getFileCreateDate(new File("F:\\test\\book.txt"));  
  2. result = getFileCreateDate(new File("F:\\test\\111.JPG"));  
  3. System.out.println("文件創(chuàng)建時(shí)間為"+result);  

得到信息:返回時(shí)間字符串:文件創(chuàng)建時(shí)間為2014-03-13 11:58
大家可以根據(jù)自己的業(yè)務(wù)需求,進(jìn)行相應(yīng)的功能操作!上面方法中有些類比如說(shuō):Encoder、MultimediaInfo、JpegMetadataReader、ExifIFD0Directory等需要第三方包的支持,大家可以到我的資源庫(kù)中進(jìn)行免費(fèi)下載:

http://download.csdn.net/detail/harderxin/7033579

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
java.io.File中的絕對(duì)路徑和相對(duì)路徑.
android中的文件操作詳解以及內(nèi)部存儲(chǔ)和外部存儲(chǔ)
java入門:怎樣取得class文件的路徑|中國(guó)IT實(shí)驗(yàn)室
JAVA系統(tǒng)下的FLASH,FLV視頻應(yīng)用解決方案
java在指定路徑下創(chuàng)建文件,并寫入文件內(nèi)容
Java 判斷文件夾、文件是否存在、否則創(chuàng)建文件夾
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服