This question already has answers here:
When should I use File.separator and when File.pathSeparator?
(3个答案)
6年前关闭。
文件具有静态字符串separator和pathSeparator。分隔符是“默认名称分隔符”,而pathSeparator是“路径分隔符”。
有什么不同?有没有一个时间比另一个更好的时间? 分隔符:依赖于平台的默认名称分隔符,为String。对于Windows,它是“\”,对于Unix,它是“/” spacerChar:与分隔符相同,但为char pathSeparator:路径分隔符的平台相关变量。对于
路径中的示例PATH或CLASSPATH变量列表,以“:”分隔
Unix系统和Windows系统中的“;” pathSeparatorChar:与pathSeparator相同,但为char
请注意,所有这些都是最终变量,并且取决于系统。
这是打印这些分隔符变量的Java程序。
FileSeparator.java
以上程序在Unix系统上的输出:
Windows系统上程序的输出:
为了使程序平台独立,我们应该始终使用这些分隔符来创建文件路径或读取任何系统变量,例如PATH,CLASSPATH。
这是显示如何正确使用分隔符的代码段。
(3个答案)
6年前关闭。
文件具有静态字符串separator和pathSeparator。分隔符是“默认名称分隔符”,而pathSeparator是“路径分隔符”。
有什么不同?有没有一个时间比另一个更好的时间?
最佳答案
java.io.File类包含四个静态分隔符变量。为了更好地理解,让我们借助一些代码来理解
路径中的示例PATH或CLASSPATH变量列表,以“:”分隔
Unix系统和Windows系统中的“;”
请注意,所有这些都是最终变量,并且取决于系统。
这是打印这些分隔符变量的Java程序。
FileSeparator.java
import java.io.File;
public class FileSeparator {
public static void main(String[] args) {
System.out.println("File.separator = "+File.separator);
System.out.println("File.separatorChar = "+File.separatorChar);
System.out.println("File.pathSeparator = "+File.pathSeparator);
System.out.println("File.pathSeparatorChar = "+File.pathSeparatorChar);
}
}
以上程序在Unix系统上的输出:
File.separator = /
File.separatorChar = /
File.pathSeparator = :
File.pathSeparatorChar = :
Windows系统上程序的输出:
File.separator = \
File.separatorChar = \
File.pathSeparator = ;
File.pathSeparatorChar = ;
为了使程序平台独立,我们应该始终使用这些分隔符来创建文件路径或读取任何系统变量,例如PATH,CLASSPATH。
这是显示如何正确使用分隔符的代码段。
//no platform independence, good for Unix systems
File fileUnsafe = new File("tmp/abc.txt");
//platform independent and safe to use across Unix and Windows
File fileSafe = new File("tmp"+File.separator+"abc.txt");
10-01 18:21