【問題】
不同系統平台下的行分隔符、路徑分隔符等常常不同。如
代碼如下:
行分隔符在windows 下是 \r\n,在Linux下面是 \n, 在Mac下是 \r
路徑分隔符在windows下是 \ ,在LInux下是 /
如何在Java程序獲取當前平台的分隔符,以及其他系統相關的狀態呢?
【實現】
代碼如下:
import java.util.Properties;
public class SeparatorUtils {
/* system properties to get separators */
static final Properties PROPERTIES = new Properties(System.getProperties());
/**
* get line separator on current platform
* @return line separator
*/
public static String getLineSeparator(){
return PROPERTIES.getProperty("line.separator");
}
/**
* get path separator on current platform
* @return path separator
*/
public static String getPathSeparator(){
return PROPERTIES.getProperty("path.separator");
}
}
class SeparatorUtilTest{
public static void main (String[] args){
System.out.println("Line separator is: " + SeparatorUtils.getLineSeparator());
System.out.println("Path separator is: " + SeparatorUtils.getPathSeparator());
}
}
【附注】
其他能得到的屬性:
java.version
Java 運行時環境版本
java.vendor
Java 運行時環境供應商
java.vendor.url
Java 供應商的 URL
java.home
Java 安裝目錄
java.vm.specification.version
Java 虛擬機規范版本
java.vm.specification.vendor
Java 虛擬機規范供應商
java.vm.specification.name
Java 虛擬機規范名稱
java.vm.version
Java 虛擬機實現版本
java.vm.vendor
Java 虛擬機實現供應商
java.vm.name
Java 虛擬機實現名稱
java.specification.version
Java 運行時環境規范版本
java.specification.vendor
Java 運行時環境規范供應商
java.specification.name
Java 運行時環境規范名稱
java.class.version
Java 類格式版本號
java.class.path
Java 類路徑
java.library.path
加載庫時搜索的路徑列表
java.io.tmpdir
默認的臨時文件路徑
java.compiler
要使用的 JIT 編譯器的名稱
java.ext.dirs
一個或多個擴展目錄的路徑
os.name
操作系統的名稱
os.arch
操作系統的架構
os.version
操作系統的版本
file.separator
文件分隔符(在 UNIX 系統中是“/”)
path.separator
路徑分隔符(在 UNIX 系統中是“:”)
line.separator
行分隔符(在 UNIX 系統中是“/n”)
user.name
用戶的賬戶名稱
user.home
用戶的主目錄
user.dir
用戶的當前工作目錄