麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Java中的文件和目錄管理----Path、Files

2019-11-14 09:23:11
字體:
供稿:網(wǎng)友

java中,文件或是目錄習(xí)慣用java.io.File對象來表示,但是File類有很多缺陷,比如它的很多方法不能拋出異常,它的delete方法經(jīng)常莫名其妙的失敗等,舊的File類經(jīng)常是程序失敗的根源。因此在Java7中有了更好的替代:java.nio.file.Path及java.nio.file.Files。

Path接口的名字非常恰當,就是表示路徑的,API中講Path對象可以是一個文件,一個目錄,或是一個符號鏈接,也可以是一個根目錄。用法很簡單。創(chuàng)建Path并不會創(chuàng)建物理文件或是目錄,path實例經(jīng)常引用并不存在的物理對象,要真正創(chuàng)建文件或是目錄,需要用到Files類。 Files類是一個非常強大的類,它提供了處理文件和目錄以及讀取文件和寫入文件的靜態(tài)方法。可以用它創(chuàng)建和刪除路徑。復(fù)制文件。檢查路徑是否存在等。此外。Files還擁有創(chuàng)建流對象的方法。

Path基本用法:

1.創(chuàng)建一個路徑 Path path=FileSystems.getDefault().getPath("d:/users/日記5.txt"); //并沒有實際創(chuàng)建路徑,而是一個指向d:/users/日記5.txt路徑的引用 Path path=Paths.get("d:/users/日記5.txt"); //Paths類提供了這個快捷方法,直接通過它的靜態(tài)get方法創(chuàng)建path

2.得到目錄、文件名

path.toString(); //得到全路徑---d:/users/日記5.txt path.getFileName(); //得到文件名---日記5.txt path.getParent(); //得到父目錄---d:/users path.getNameCount(); //得到目錄中元素的個數(shù),不算根---2 path.getname(0); //得到路徑中第一個元素名,不算根---users path.getname(1); //得到路徑中第二個元素名,不算根---日記5.txt path.getRoot(); //得到根目錄---/

Files基本用法 1.創(chuàng)建和刪除文件與目錄

Path pathfile=Paths.get("d:/users/日記5.txt"); Path pathdirec=Paths.get("d:/users"); Files.createFile(pathfile); //創(chuàng)建文件 Files.createDirectory(pathdirec); //創(chuàng)建目錄 Files.delete(pathfile); //直接刪除路徑 Files.deleteIfExists(pathfile); //先判斷是否存在,存在再刪

2.復(fù)制和移動文件

Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING); //復(fù)制文件,StandardCopyOption.REPLACE_EXISTING表示:如果目標文件存在,則替換它 Files.move(source2, target2, StandardCopyOption.REPLACE_EXISTING); //移動文件

3.文件的讀取和寫入

Files類讀取和寫入的都是小型二進制文件和文本文件,大型文件要用流。Files.readAllLines(textFile, charset); //讀取文本文件,按charset編碼,textFile為要讀取文件的路徑,返回List<String>型的數(shù)據(jù) Files.readAllBytes(path); //讀取二進制文件 ,返回二進制數(shù)據(jù)的byte[]數(shù)組 Files.write(path,bytes); //寫入二進制數(shù)據(jù)。往path路徑下的文件寫入byte[]型的bytes數(shù)據(jù),返回的是一個path路徑 Files.write(textFile, lines, charset); //寫入文本數(shù)據(jù) 。把List<String> 型的lines數(shù)據(jù)寫入到文件textFile中,以charset編碼形式。

具體看代碼:

package app13;import java.io.IOException;import java.nio.charset.Charset;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.nio.file.StandardCopyOption;import java.util.Arrays;import java.util.List;public class FilesTest { public static void main(String[] args) { // 復(fù)制文件 Path source = Paths.get("d:/users/日記1.txt"); Path target = Paths.get("d:/users/日記2.txt"); try { Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING); } catch (IOException ex) { ex.PRintStackTrace(); } Path source2 = Paths.get("d:/users/日記3.txt"); Path target2 = Paths.get("d:/users/yxj/日記3.txt"); try { Files.move(source2, target2, StandardCopyOption.REPLACE_EXISTING); } catch (IOException ex) { ex.printStackTrace(); } // 讀出和寫入操作 Path textFile = Paths.get("d:/users/日記5.txt"); Charset charset = Charset.forName("UTF-8"); String line1 = "你好:"; String line2 = "Files"; List<String> lines = Arrays.asList(line1, line2); try { Files.write(textFile, lines, charset); } catch (IOException ex) { ex.printStackTrace(); } List<String> linesRead = null; try { // read back linesRead = Files.readAllLines(textFile, charset); } catch (IOException ex) { ex.printStackTrace(); } if (linesRead != null) { for (String line : linesRead) { System.out.println(line); } } }}

運行結(jié)果: 你好: Files

—-再查看實際電腦中的文件,相應(yīng)文件的內(nèi)容和位置也發(fā)生了變化


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 嫩草91在线 | 久久蜜桃香蕉精品一区二区三区 | 国产午夜精品一区二区三区视频 | 做羞羞视频 | 今井夏帆av一区二区 | 欧美a在线播放 | japanese javhd | 午夜视频免费播放 | 黑人日比| 色综合久久久久久久久久 | 国产精品视频1区 | 久久91精品国产91久久yfo | 久久久国产一级片 | 精品二区在线观看 | 欧美成人免费tv在线播放 | 在线亚洲播放 | 黄色小视频免费在线观看 | 麻豆19禁国产青草精品 | 中国fx性欧美xxxx | 中国精品久久 | 欧美老外a级毛片 | 久久久tv | 一区二区久久 | 国产视频软件在线 | 欧美黄色性视频 | 欧美一级特黄aaaaaaa什 | 中文字幕一二三区芒果 | 久久国产免费视频 | 巨乳毛片 | 狠狠干天天操 | 欧美18videos性处按摩 | 最新中文字幕第一页视频 | 久久中文免费 | 午夜国产福利 | 亚洲国产精品一区二区久久 | 中国美女一级黄色片 | 亚洲欧美国产精品va在线观看 | av在线免费观看国产 | 国产精品一二区 | 九九热在线免费观看视频 | 欧美黑人xx |