自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊 Java File 分隔符和 Path 分隔符

開(kāi)發(fā) 前端
在這篇短文中,我們學(xué)習(xí)了如何使用系統(tǒng)特定的文件分隔符來(lái)構(gòu)建路徑,這樣我們的代碼就可以在多個(gè)操作系統(tǒng)上工作。

大家好,我是指北君。

不同的操作系統(tǒng)使用不同的字符作為文件和路徑分隔符。當(dāng)我們的應(yīng)用程序需要在多個(gè)平臺(tái)上運(yùn)行時(shí),我們需要正確處理這些問(wèn)題。

Java幫助我們選擇一個(gè)合適的分隔符,并提供了一些函數(shù)來(lái)幫助我們創(chuàng)建能在主機(jī)操作系統(tǒng)上運(yùn)行的路徑。

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

一、文件分隔符

文件分隔符是用來(lái)分隔構(gòu)成特定位置路徑的目錄名的字符。

1.獲取文件分隔符

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

我們可以用File.separator來(lái)獲取String的分隔符。

String fileSeparator = File.separator;

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

char fileSeparatorChar = File.separatorChar;

從Java 7開(kāi)始,我們也可以使用文件系統(tǒng)。

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

輸出結(jié)果將取決于主機(jī)操作系統(tǒng)。文件分隔符在Windows上為\,在macOS和基于Unix的操作系統(tǒng)上為/。

2.構(gòu)造一個(gè)文件路徑

Java提供了一些方法來(lái)從目錄列表中構(gòu)建文件路徑。

這里,我們使用Paths類。

Path path = Paths.get("dir1", "dir2");

讓我們?cè)贛icrosoft Windows上測(cè)試一下。

assertEquals("dir1\\dir2", path.toString());

同樣,我們也可以在Linux或Mac上測(cè)試它。

assertEquals("dir1/dir2", path.toString());

我們也可以使用文件類。

File file = new File("file1", "file2");

讓我們?cè)贛icrosoft Windows上測(cè)試一下。

assertEquals("dir1\\dir2", path.toString());

同樣,我們也可以在Linux或Mac上測(cè)試它。

assertEquals("dir1/dir2", path.toString());

正如我們所看到的,我們可以只提供路徑字符串來(lái)構(gòu)建一個(gè)文件路徑---我們不需要明確地包括一個(gè)文件分隔符。

3.路徑分隔符

路徑分隔符是操作系統(tǒng)常用的一個(gè)字符,用于分隔路徑列表中的各個(gè)路徑。

3.1.獲取路徑分隔符

我們可以用File.pathSeparator來(lái)獲取路徑分隔符的String。

String pathSeparator = File.pathSeparator;

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

char pathSeparatorChar = File.pathSeparatorChar;

這兩個(gè)例子都返回了路徑分隔符。在Windows上是分號(hào);,在Mac和基于Unix的操作系統(tǒng)上是冒號(hào):。

3.2.構(gòu)造一個(gè)文件路徑

我們可以用分隔符作為分隔符來(lái)構(gòu)建一個(gè)String的文件路徑。

讓我們?cè)囋嘢tring.join方法:

String[] pathNames = { "path1", "path2", "path3" };
String path = String.join(File.pathSeparator, pathNames);

這里我們?cè)赪indows上測(cè)試我們的代碼。

assertEquals("path1;path2;path3", path);

而文件路徑在Linux或Mac上看起來(lái)會(huì)有所不同。

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;
}

讓我們?cè)贛icrosoft Windows上測(cè)試我們的代碼。

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

而且它在Mac或Unix上的表現(xiàn)會(huì)有所不同。

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

總結(jié)

在這篇短文中,我們學(xué)習(xí)了如何使用系統(tǒng)特定的文件分隔符來(lái)構(gòu)建路徑,這樣我們的代碼就可以在多個(gè)操作系統(tǒng)上工作。

我們看到了如何使用內(nèi)置類Path和File來(lái)構(gòu)造文件路徑,我們還看到了如何獲得必要的分隔符來(lái)使用String連接工具。

責(zé)任編輯:武曉燕 來(lái)源: Java技術(shù)指北
相關(guān)推薦

2010-09-06 16:59:11

SQL函數(shù)

2024-07-29 10:46:50

2021-07-19 07:55:24

JavaScript技巧實(shí)踐

2021-03-15 08:15:42

ES2021語(yǔ)言開(kāi)發(fā)

2010-01-20 17:54:13

VB.NET特殊字符

2020-07-08 09:30:29

Python編程語(yǔ)言終止符

2010-01-15 17:18:57

C++源程序

2022-07-30 07:50:40

數(shù)據(jù)庫(kù)字段存儲(chǔ)

2015-07-15 17:09:48

HiveHadoop分布式文件系統(tǒng)

2009-11-30 18:34:22

PHP簡(jiǎn)單語(yǔ)法

2009-12-18 09:52:40

Ruby字符串處理函數(shù)

2019-03-21 14:30:15

Linux文本分析命令

2021-07-15 08:55:17

ES12 ECMAScript JS 功能

2023-06-07 08:50:40

PythonCSV

2009-12-09 09:22:45

PHP常用語(yǔ)法

2011-07-18 13:34:44

SQL Server數(shù)拼接字符串

2024-03-28 10:17:03

JDK 17字符串十六進(jìn)制

2018-11-12 14:35:47

BashhereLinux

2025-01-03 11:43:53

2020-08-01 16:19:13

JavaScript字符串開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)