深入瞭解Java File分隔符和Path分隔符的使用

大傢好,我是指北君。

不同的操作系統使用不同的字符作為文件和路徑分隔符。當我們的應用程序需要在多個平臺上運行時,我們需要正確處理這些問題。

Java幫助我們選擇一個合適的分隔符,並提供瞭一些函數來幫助我們創建能在主機操作系統上運行的路徑。

在本文中,我們將瞭解如何編寫代碼來使用正確的文件和路徑分隔符。

一、文件分隔符

文件分隔符是用來分隔構成特定位置路徑的目錄名的字符。

1.獲取文件分隔符

在Java中,有幾種方法可以獲得文件分隔符。

我們可以用File.separator來獲取String的分隔符。

String fileSeparator = File.separator;

我們也可以用File.separatorChar獲得這個分隔符的字符。

char fileSeparatorChar = File.separatorChar;

從Java 7開始,我們也可以使用文件系統。

String fileSeparator = FileSystems.getDefault().getSeparator();

輸出結果將取決於主機操作系統。文件分隔符在Windows上為\​,在macOS和基於Unix的操作系統上為/。

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.路徑分隔符

路徑分隔符是操作系統常用的一個字符,用於分隔路徑列表中的各個路徑。

3.1.獲取路徑分隔符

我們可以用File.pathSeparator來獲取路徑分隔符的String。

String pathSeparator = File.pathSeparator;

我們也可以以char的形式獲得路徑分隔符。

char pathSeparatorChar = File.pathSeparatorChar;

這兩個例子都返回瞭路徑分隔符。在Windows上是分號;​,在Mac和基於Unix的操作系統上是冒號:。

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上的表現會有所不同。

assertEquals("path1:path2", buildPathUsingStringJoiner("path1", "path2"));

總結

在這篇短文中,我們學習瞭如何使用系統特定的文件分隔符來構建路徑,這樣我們的代碼就可以在多個操作系統上工作。

我們看到瞭如何使用內置類Path和File來構造文件路徑,我們還看到瞭如何獲得必要的分隔符來使用String連接工具。

到此這篇關於深入瞭解Java File分隔符和Path分隔符的使用的文章就介紹到這瞭,更多相關Java File Path分隔符內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: