java io 文件路径_【IO流】java中文件路径(相对路径、绝对路径)相关类及方法...
1. URL
菜鳥教程:Java URL處理 通常推薦對http等協議進行使用,若操作(file:)部分屬性將無意義,建議getFile()。
相關:URLConnections 類 可以打開連接進行IO
通過getResource方法可以獲得相對于classPath的文件的URL
2. File
@Test
void test7() throws IOException {
String dirname = "./file.txt";
File f1 = new File(dirname);
if (f1.isDirectory()) {
System.out.println(dirname + " is a directory");
} else {
System.out.println(dirname + " is not a directory");
}
System.out.println("CanonicalPath:" + f1.getCanonicalPath());
System.out.println("AbsolutePath :" + f1.getAbsolutePath());
System.out.println("Path :" + f1.getPath());
}
"./file.txt" :輸出結果
./file.txt is not a directory CanonicalPath:E:\a\MyFilesNoCh\JAVA\eclipse-jee-2018-09-win32-x86_64-Spring-Hibernate\ClassPathTest\file.txt AbsolutePath :E:\a\MyFilesNoCh\JAVA\eclipse-jee-2018-09-win32-x86_64-Spring-Hibernate\ClassPathTest.\file.txt Path :.\file.txt
"/file.txt" :輸出結果
/file.txt is not a directory CanonicalPath:E:\file.txt AbsolutePath :E:\file.txt Path :\file.txt
"file.txt" :輸出結果
file.txt is not a directory CanonicalPath:E:\a\MyFilesNoCh\JAVA\eclipse-jee-2018-09-win32-x86_64-Spring-Hibernate\ClassPathTest\file.txt AbsolutePath :E:\a\MyFilesNoCh\JAVA\eclipse-jee-2018-09-win32-x86_64-Spring-Hibernate\ClassPathTest\file.txt Path :file.txt
結論
CanonicalPath返回全路徑,但不會包含../.等符號
AbsolutePath返回全路徑,會包含../.等符號
使用/開頭,會從磁盤根目錄開始索引
不使用/開頭,會從eclipse項目根目錄開始索引
getPath返回的是對象創建是的路徑參數
3. Path
Java7中文件IO發生了很大的變化,專門引入了很多新的類:
import java.nio.file.DirectoryStream; import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.FileAttribute; import java.nio.file.attribute.PosixFilePermission; import java.nio.file.attribute.PosixFilePermissions;
其中Path在功能上可以說和原來的File相似,包含了各種路徑處理操作,而新的File及其相關類Files可以說是包含了絕大多數的文件操作方法,比如創建、復制、遍歷、重命名、權限、可否執行等。。。也可以直接獲取流對象。
[二] JavaIO之File詳解 以及FileSystem WinNTFileSystem簡介 java Files類和Paths類的用法 (轉)
URI和URL都定義了資源是什么,但URL還定義了該如何訪問資源。URL是一種具體的URI,它是URI的一個子集,它不僅唯一標識資源,而且還提供了定位該資源的信息。URI 是一種語義上的抽象概念,可以是絕對的,也可以是相對的,而URL則必須提供足夠的信息來定位,是絕對的。
FileSystem到底是什么?
操作系統有各自的文件系統,這些文件系統又存在很多差異,而Java 因為是跨平臺的,所以它必須要統一處理這些不同平臺文件系統之間的差異,才能往上提供統一的入口。
說白了又是接口來實現統一,不同的操作系統實現這個接口,就可以提供統一的表現形式
FileSystem是一個抽象類 ,
windows下的實現類為:WinNTFileSystem,在IDE中可以直接找到
可能你只是找到了一個WinNTFileSystem,只有一個要接口還有什么意思?
如果你目前只看到了一個WinNTFileSystem 那說明你在Windows下
WinNTFileSystem類 和 UnixFileSystem類并不是在同一個 JDK 里面,也就是說它們是分開的
你只能在 Windows 版本的 JDK 中找到 WinNTFileSystem,而在 Linux 版本的 JDK 中找到 UnixFileSystem
同樣地,其他操作系統也有自己的文件系統實現類。
總結
以上是生活随笔為你收集整理的java io 文件路径_【IO流】java中文件路径(相对路径、绝对路径)相关类及方法...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sybase和mysql语法_主流数据库
- 下一篇: tensorflow+python fl