java簡單的輸入輸出代碼 java相對路徑創建文件

Path 對象表示文件系統中文件 , 目錄和符號鏈接的路徑 。
Path 是java.nio.file包中的一個接口 。
當我們創建一個Path對象時,路徑不一定存在 。
Path 可以使用舊的java.io.File apI 。我們可以使用File類的方法toPath()從File對象中獲取一個Path對象
我們可以使用Path對象的toFile()方法從Path對象中獲取File對象 。
我們可以對Path對象執行兩種操作:

  • 路徑操作
  • 文件操作
我們可以使用 Path 來訪問路徑的組件,例如文件名,根名等 。
我們可以比較和檢查路徑 。例如,檢查路徑以.txt結尾,比較兩個路徑是否相同,檢查路徑是絕對路徑還是相對路徑等 。我們還可以組合和解析路徑 。
我們需要使用 Files 類在 Path 對象上執行文件I/O操作 。
創建路徑對象
FileSystem對象充當工廠來創建Path對象
FilePath中的getPath()方法創建一個Path對象 。
以下代碼在Windows上為文件路徑C:\Java_Dev\test1.txt創建一個Path對象:
Path p1 = FileSystems.getDefault().getPath("C:\\Java_Dev\\test1.txt");我們可以在構造Path對象時將路徑的組件單獨傳遞給getPath()方法 。
以下語句創建一個Path對象以表示Windows上的C:\Java_Dev\test1.txt路徑:
Path p2 = FileSystems.getDefault().getPath("C:", "Java_Dev", "test1.txt");【java簡單的輸入輸出代碼 java相對路徑創建文件】Paths 類可以從路徑字符串或URI的組件創建 Path 對象 。
Paths.get()靜態方法創建一個Path對象 。
以下創建 Path 對象來表示相同的路徑C:\Java_Dev\test1.txt:
Path p3 = Paths.get("C:\\Java_Dev\\test1.txt");Path p4 = Paths.get("C:", "Java_Dev", "test1.txt");我們可以從一個空路徑創建一個 Path 對象,例如Paths.get(“”) 。具有空路徑的Path對象是指與當前工作目錄相同的默認目錄 。
路徑的組件
文件系統中的路徑由一個或多個組件組成 。
getNameCount()方法返回除了根之外的Path對象中的組件數量 。
例如,路徑C:\Java_Dev\test1.txt由三個組件組成:C:的根和名為Java_Dev和test1.txt的兩個組件 。這種情況下,getNameCount()方法將返回2 。
getName(int index)方法返回指定索引處的組件名稱 。最靠近根的組件的索引為0 。
離根最遠的組件的索引為count – 1.在路徑中 。
C:\Java_Dev\test1.txt,Java_Dev組件的索引為0,test1.txt組件的索引為1 。
getParent()方法返回路徑的父代 。如果路徑沒有父級 , 則返回null 。
路徑C:\Java_Dev\test.txt的父目錄是C:\Java_Dev 。
相對路徑test.txt沒有父級 。
getRoot()方法返回路徑的根 。如果路徑沒有根,它返回null 。
例如,Windows上的路徑C:\Java_Dev\test1.txt具有C:\作為其根 。
getFileName()方法返回由路徑表示的文件名 。
如果路徑沒有文件名,則返回null 。文件名是根的最遠組件 。例如,在路徑C:\Java_Dev\test1.txt中,test1.txt是文件名 。
我們可以通過使用isAbsolute()方法來檢查路徑是否代表絕對路徑 。
路徑不必存在以獲取有關其組件的信息 。
以下代碼顯示了如何訪問Path對象的組件 。
import java.nio.file.Path;import java.nio.file.Paths;public class Main { public static void main(String[] args) { Path p1 = Paths.get("C:\\Java_Dev\\test1.txt"); printDetails(p1); Path p2 = Paths.get("test1.txt"); printDetails(p2); } public static void printDetails(Path p) { System.out.println("Details for path: " + p); int count = p.getNameCount(); System.out.println("Name count: " + count); for (int i = 0; i < count; i++) { Path name = p.getName(i); System.out.println("Name at index " + i + " is " + name); } Path parent = p.getParent(); Path root = p.getRoot(); Path fileName = p.getFileName(); System.out.println("Parent: " + parent + ", Root: " + root + ", File Name: " + fileName); System.out.println("Absolute Path: " + p.isAbsolute()); }}不同形式的路徑我們可以得到一個路徑的不同類型的表示 。假設我們創建一個Path對象,如下所示:
Path p1 = Paths.get("test.txt");這里 , p1是相對路徑 。我們可以使用其toAbsolutePath()方法獲得由p1表示的絕對路徑,如下所示:
Path p1AbsPath = p1.toAbsolutePath();現在p1AbsPath是p1的絕對路徑 。例如 , 在Windows上 , p1AbsPath可能看起來像C:\testapp\test.txt 。
如果路徑不是絕對路徑,toAbsolutePath()方法使用默認目錄來解析路徑 。
如果路徑是絕對路徑 , toAbsolutePath()方法返回相同的路徑 。
我們可以使用toRealPath()方法來獲取現有文件的真實路徑 。它返回到現有文件的規范路徑 。如果路徑表示符號鏈接 , 則它返回目標文件的實際路徑 。
我們可以傳遞一個鏈接選項到這個方法,指示我們是否要跟蹤到它的目標的符號鏈接 。
如果路徑表示的文件不存在,toRealPath()會拋出一個IOException異常 。
以下代碼顯示了如何從Path對象獲取實際路徑:
import java.nio.file.LinkOption;import java.nio.file.Path;import java.nio.file.Paths;public class Main { public static void main(String[] args) throws Exception { Path p2 = Paths.get("test2.txt"); // Follow link for p2, if it is a symbolic link Path p2RealPath = p2.toRealPath(); System.out.println("p2RealPath:" + p2RealPath); Path p3 = Paths.get("test3.txt"); // Do not follow link for p3, if it is a symbolic link Path p3RealPath = p3.toRealPath(LinkOption.NOFOLLOW_LINKS); System.out.println("p3RealPath:" + p3RealPath); }}路徑URI
使用Path的toUri()方法來獲取其URI表示 。
以下代碼顯示了如何獲取路徑的URI形式 。
import java.nio.file.Path;import java.nio.file.Paths;public class Main { public static void main(String[] args) throws Exception { Path p2 = Paths.get("test2.txt"); java.net.URI p2UriPath = p2.toUri(); System.out.println("Absolute Path: " + p2.toAbsolutePath()); System.out.println("URI Path: " + p2UriPath); }}
java簡單的輸入輸出代碼 java相對路徑創建文件

文章插圖


    以上關于本文的內容,僅作參考!溫馨提示:如遇健康、疾病相關的問題,請您及時就醫或請專業人士給予相關指導!

    「愛刨根生活網」www.malaban59.cn小編還為您精選了以下內容,希望對您有所幫助: