【問題】
不同系統平台下的行分隔符、路徑分隔符等常常不同。如
複製代碼代碼如下:
行分隔符在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 | 用戶的當前工作目錄 |