最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java讀取磁盤(pán)并遍歷磁盤(pán)文件過(guò)程解析

 更新時(shí)間:2019年09月17日 09:43:28   作者:冰湖一角  
這篇文章主要介紹了java讀取磁盤(pán)并遍歷磁盤(pán)文件過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

1. 獲取本機(jī)所有盤(pán)符信息

//1. 獲取本機(jī)盤(pán)符
File[] roots = File.listRoots();
for (int i = 0; i < roots.length; i++) {
  System.out.print(roots[i].getPath()+"; ");//磁盤(pán)路徑
  System.out.print(roots[i].getTotalSpace()/1024/1024/1024+"; ");//磁盤(pán)總空間大小
  System.out.print(roots[i].getUsableSpace()/1024/1024/1024+"; ");//剩余磁盤(pán)空間大小
  System.out.println(roots[i].getFreeSpace()/1024/1024/1024);//剩余磁盤(pán)空間大小
}

默認(rèn)獲取磁盤(pán)空間單位是BT,操作系統(tǒng)是這樣算的 1G=1024MB, 1MB=1024KB, 1KB=1024BT

以上運(yùn)行結(jié)果如下:

C:\; 119; 71; 71
D:\; 299; 233; 233
E:\; 309; 308; 308
F:\; 321; 320; 320
W:\; 588; 358; 358

其中W盤(pán)為網(wǎng)盤(pán)。

2. 僅獲取本地磁盤(pán)(除去網(wǎng)絡(luò)磁盤(pán)等)

File[] roots = File.listRoots();
FileSystemView sys = FileSystemView.getFileSystemView();
for (int i = 0; i < roots.length; i++) {
  if(!sys.getSystemTypeDescription(roots[i]).equals("本地磁盤(pán)")){
    continue;
  }
  System.out.println(roots[i].getPath());// 磁盤(pán)路徑
}

輸出結(jié)果:

C:\
D:\
E:\
F:\

3.在某一磁盤(pán)新建文件

File file = new File("F:\\test\\a\\b");
if (!file.exists()) {
  file.mkdirs();// 目錄不存在,創(chuàng)建根目錄
}

4. 遍歷某一個(gè)盤(pán)符的文件

File file = new File("E:\\");
SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
System.out.println(file.getTotalSpace()/1024/1024/1024);// b-kb-M-G
if (file.isAbsolute()) { // 判斷是否為根目錄
  File[] list = file.listFiles(); // 使用數(shù)組接收帶有完整路徑的文件夾
  for (int i = 0; i < list.length; i++) {
    System.out.println(list[i].getPath());
    System.out.println(list[i].getTotalSpace()); 
    System.out.println(dateFormat.format(list[i].lastModified()));    
  }
}

5.遍歷某一文件夾下的文件

File file = new File("F:\\test");
getAllFilePath(file);
public static void getAllFilePath(File dir){
  File[] files=dir.listFiles();
  for(int i=0;i<files.length;i++){
    if(files[i].isDirectory()){
      System.out.println(files[i].getPath());
      //這里面用了遞歸的算法 
      getAllFilePath(files[i]);  
    } else {
      System.out.println(files[i].getPath());
  }
  }
 }

輸入結(jié)果:

F:\test\a
F:\test\a\b

6. 獲取某一個(gè)盤(pán)符或文件夾下的所有文件的大小

File file = new File("F:\\test");
getAllFileSize(file);
public static long getAllFileSize(File dir){
  File[] files=dir.listFiles();
  for(int i=0;i<files.length;i++){
    if(files[i].isDirectory()){
      //這里面用了遞歸的算法 
      getAllFileSize(files[i]);
    } else {
      sum+=files[i].length();
      System.out.println(files[i]+"的大小:"+files[i].length());
  }
  }
  return sum;
 }

7. 保存文件

File filePath = new File("D:\\11.png");
String fileToday = DateUtils.formatTimeYMD(new Date());
//創(chuàng)建目錄rootPath
String rootPath = "E:/fileUpload/"+fileToday+"/";
File file = new File(rootPath);
if (!file.exists()) {
  file.mkdirs();//目錄不存在,創(chuàng)建根目錄
}
String picPath = getPath(rootPath, "videoFile");
saveFile(picPath, filePath);
private static boolean saveFile(String path,File uploadFile) {
  //Files.copy(source, out);//可以直接用這個(gè)方法保存
  int bufferSize = 8192;//8kb
  //寫(xiě)文件
  try {
    File f = new File(path+"/", uploadFile.getName());
    if (!f.exists()) {
      f.createNewFile();
    }
    InputStream in = new BufferedInputStream(new FileInputStream(uploadFile),bufferSize);
    OutputStream out =new BufferedOutputStream(new FileOutputStream(f),bufferSize) ;
    byte[] buffer = new byte[bufferSize];
    int len = 0;
    while ((len = in.read(buffer)) >0) {
      out.write(buffer,0,len);
    }
    out.flush();
    out.close();
  } catch (IOException e) {
    e.printStackTrace();
    return false;
  }
  return true;
}

如果不需要推送進(jìn)度的話,可以直接調(diào)用Files.copy(source, out)方法進(jìn)行復(fù)制文件。

8. 刪除文件

File filePath = new File("D:/home/logs/backupsystem_error.log");
boolean result = filePath.delete();//true表示刪除成功
System.out.println(result);

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot項(xiàng)目中的多數(shù)據(jù)源支持的方法

    SpringBoot項(xiàng)目中的多數(shù)據(jù)源支持的方法

    本篇文章主要介紹了SpringBoot項(xiàng)目中的多數(shù)據(jù)源支持的方法,主要介紹在SpringBoot項(xiàng)目中利用SpringDataJpa技術(shù)如何支持多個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)源,有興趣的可以了解一下
    2017-10-10
  • java如何根據(jù)日期生成單號(hào)

    java如何根據(jù)日期生成單號(hào)

    這篇文章主要介紹了java如何根據(jù)日期生成單號(hào)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Java8如何構(gòu)建一個(gè)Stream示例詳解

    Java8如何構(gòu)建一個(gè)Stream示例詳解

    Java 8 是迄今為止在語(yǔ)義上改動(dòng)上最大的一個(gè)平臺(tái)。下面這篇文章主要給大家介紹了關(guān)于Java8如何構(gòu)建一個(gè)Stream的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • RestTemplate發(fā)送get和post請(qǐng)求,下載文件的實(shí)例

    RestTemplate發(fā)送get和post請(qǐng)求,下載文件的實(shí)例

    這篇文章主要介紹了RestTemplate發(fā)送get和post請(qǐng)求,下載文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • springboot配置Hikari連接池方式

    springboot配置Hikari連接池方式

    本文介紹了在Springboot中配置Hikari連接池的具體參數(shù)和設(shè)置,涵蓋了autoCommit, connectionTimeout, idleTimeout, maxLifetime, minimumIdle, maximumPoolSize等關(guān)鍵配置項(xiàng),并提供了它們的默認(rèn)值、描述和條件下的重置規(guī)則
    2024-09-09
  • SpringBoot消息國(guó)際化配置實(shí)現(xiàn)過(guò)程解析

    SpringBoot消息國(guó)際化配置實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了SpringBoot消息國(guó)際化配置實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • mybatisplus實(shí)現(xiàn)自動(dòng)創(chuàng)建/更新時(shí)間的項(xiàng)目實(shí)踐

    mybatisplus實(shí)現(xiàn)自動(dòng)創(chuàng)建/更新時(shí)間的項(xiàng)目實(shí)踐

    Mybatis-Plus提供了自動(dòng)填充功能,可以通過(guò)實(shí)現(xiàn)MetaObjectHandler接口來(lái)實(shí)現(xiàn)自動(dòng)更新時(shí)間的功能,本文就來(lái)介紹一下mybatisplus實(shí)現(xiàn)自動(dòng)創(chuàng)建/更新時(shí)間的項(xiàng)目實(shí)踐,感興趣的可以了解下
    2024-01-01
  • java語(yǔ)言自行實(shí)現(xiàn)ULID過(guò)程底層原理詳解

    java語(yǔ)言自行實(shí)現(xiàn)ULID過(guò)程底層原理詳解

    這篇文章主要為大家介紹了java語(yǔ)言自行實(shí)現(xiàn)ULID過(guò)程底層原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • java使用Stream流對(duì)自定義對(duì)象數(shù)組去重的實(shí)現(xiàn)

    java使用Stream流對(duì)自定義對(duì)象數(shù)組去重的實(shí)現(xiàn)

    本文主要介紹了java使用Stream流對(duì)自定義對(duì)象數(shù)組去重的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • 新建Maven工程出現(xiàn)Process?Terminated的問(wèn)題解決

    新建Maven工程出現(xiàn)Process?Terminated的問(wèn)題解決

    當(dāng)Maven出現(xiàn)"Process terminated"錯(cuò)誤時(shí),這通常是由于配置文件或路徑錯(cuò)誤導(dǎo)致的,本文主要介紹了新建Maven工程出現(xiàn)Process?Terminated的問(wèn)題解決,感興趣的可以了解一下
    2024-04-04

最新評(píng)論

佛冈县| 平南县| 蓝田县| 新郑市| 永平县| 阳谷县| 廊坊市| 枞阳县| 游戏| 三穗县| 祁门县| 绥江县| 巩留县| 宝坻区| 桦川县| 奉贤区| 新乐市| 阿拉善盟| 韶山市| 乐山市| 丽江市| 监利县| 乐安县| 河东区| 武山县| 潞城市| 高清| 浦县| 宝坻区| 荥阳市| 成安县| 永顺县| 屯门区| 张家界市| 澳门| 休宁县| 鸡西市| 蓬莱市| 仁寿县| 东兰县| 富顺县|