深入了解Java File分隔符和Path分隔符的使用
大家好,我是指北君。
不同的操作系統(tǒng)使用不同的字符作為文件和路徑分隔符。當我們的應用程序需要在多個平臺上運行時,我們需要正確處理這些問題。
Java幫助我們選擇一個合適的分隔符,并提供了一些函數(shù)來幫助我們創(chuàng)建能在主機操作系統(tǒng)上運行的路徑。
在本文中,我們將了解如何編寫代碼來使用正確的文件和路徑分隔符。
一、文件分隔符
文件分隔符是用來分隔構成特定位置路徑的目錄名的字符。
1.獲取文件分隔符
在Java中,有幾種方法可以獲得文件分隔符。
我們可以用File.separator來獲取String的分隔符。
String fileSeparator = File.separator;
我們也可以用File.separatorChar獲得這個分隔符的字符。
char fileSeparatorChar = File.separatorChar;
從Java 7開始,我們也可以使用文件系統(tǒng)。
String fileSeparator = FileSystems.getDefault().getSeparator();
輸出結果將取決于主機操作系統(tǒng)。文件分隔符在Windows上為\?,在macOS和基于Unix的操作系統(tǒng)上為/。
2.構造一個文件路徑
Java提供了一些方法來從目錄列表中構建文件路徑。
這里,我們使用Paths類。
Path path = Paths.get("dir1", "dir2");
讓我們在Microsoft Windows上測試一下。
assertEquals("dir1\\dir2", path.toString());
同樣,我們也可以在Linux或Mac上測試它。
assertEquals("dir1/dir2", path.toString());
我們也可以使用文件類。
File file = new File("file1", "file2");
讓我們在Microsoft Windows上測試一下。
assertEquals("dir1\\dir2", path.toString());
同樣,我們也可以在Linux或Mac上測試它。
assertEquals("dir1/dir2", path.toString());
正如我們所看到的,我們可以只提供路徑字符串來構建一個文件路徑---我們不需要明確地包括一個文件分隔符。
3.路徑分隔符
路徑分隔符是操作系統(tǒng)常用的一個字符,用于分隔路徑列表中的各個路徑。
3.1.獲取路徑分隔符
我們可以用File.pathSeparator來獲取路徑分隔符的String。
String pathSeparator = File.pathSeparator;
我們也可以以char的形式獲得路徑分隔符。
char pathSeparatorChar = File.pathSeparatorChar;
這兩個例子都返回了路徑分隔符。在Windows上是分號;?,在Mac和基于Unix的操作系統(tǒng)上是冒號:。
3.2.構造一個文件路徑
我們可以用分隔符作為分隔符來構建一個String的文件路徑。
讓我們試試String.join方法:
String[] pathNames = { "path1", "path2", "path3" }; String path = String.join(File.pathSeparator, pathNames);
這里我們在Windows上測試我們的代碼。
assertEquals("path1;path2;path3", path);
而文件路徑在Linux或Mac上看起來會有所不同。
assertEquals("path1:path2:path3", path);
類似地,我們可以使用StringJoiner類:
public static StringJoiner buildPathUsingStringJoiner(String path1, String path2) { StringJoiner joiner = new StringJoiner(File.pathSeparator); joiner.add(path1); joiner.add(path2); return joiner; }
讓我們在Microsoft Windows上測試我們的代碼。
assertEquals("path1;path2", buildPathUsingStringJoiner("path1", "path2"));
而且它在Mac或Unix上的表現(xiàn)會有所不同。
assertEquals("path1:path2", buildPathUsingStringJoiner("path1", "path2"));
總結
在這篇短文中,我們學習了如何使用系統(tǒng)特定的文件分隔符來構建路徑,這樣我們的代碼就可以在多個操作系統(tǒng)上工作。
我們看到了如何使用內(nèi)置類Path和File來構造文件路徑,我們還看到了如何獲得必要的分隔符來使用String連接工具。
到此這篇關于深入了解Java File分隔符和Path分隔符的使用的文章就介紹到這了,更多相關Java File Path分隔符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java編程redisson實現(xiàn)分布式鎖代碼示例
這篇文章主要介紹了Java編程redisson實現(xiàn)分布式鎖代碼示例,小編覺得還是比較不錯的,這里給大家分享下,供需要的朋友參考。2017-10-10gateway和jwt網(wǎng)關認證實現(xiàn)過程解析
這篇文章主要介紹了gateway和jwt網(wǎng)關認證實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-11-11java substring(a)與substring(a,b)的使用說明
這篇文章主要介紹了java substring(a)與substring(a,b)的使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10