用Java创建可适应Windows和Linux的文件路径
在开发过程中,一般程序员都是在Windows上的IDE上进行开发,所以创建文件时一般也不会有什么问题,但如果程序部署到Linux上,就有可能因为Linux和Windows的文件系统的不同而导致文件创建失败。
一般Windows电脑下都会有该目录:
-
String path =
"C:\\Users";
-
String fileName =
"创建文件.xls";
-
File file =
new File(path,fileName);
此时我们在该目录下创建新文件自然不会有什么问题,但如果在Linux下,因为Linux系统没有C盘,创建文件自然会失败,程序就自然而然的运行出错了。
所以在创建文件时,我们不能理所当然的默认自己电脑上有的目录,别的电脑也有,毕竟每个人的电脑的分盘都不一样,即使是同为Windows系统,每个电脑有的都只是C盘,至于D、E、F盘则都是根据个人喜欢而创建的,更不用说文件系统不同的Linux上了,所以我们编程时需要考虑到文件系统的不同以及分盘的不同。
1.拼接文件路径时,路径连接时不使用"\\",改为使用自适应操作系统的文件分隔符:
String fileSeperator = File.seperator;
fileSeperator会根据操作系统的不同而使用正确的文件分隔符符
2.编写文件路径时,不自己编写电脑上有的文件路径,要确保使用的文件路径不同电脑也存在,即是:
String userHome = System.getproperties().getProperty("user.home");
此时userHome即为用户的主目录,与操作系统无关,则在该文件夹下创建文件,必定能成功创建,所以不会存在将程序部署到Linux系统上就发生程序运行失败的现象。
注:Java常见的系统路径与获取方法:
-
// 分隔符
-
String fileSeperator = File.seperator;
-
-
// 用户主目录
-
String userHome = System.getProperties().getProperty(
"user.home");
-
-
// Java的jre的安装路径
-
String javaPath = System.getProperties().getProperty(
"java.home");
-
-
// 操作系统名称
-
String osName = System.getProperties().getProperty(
"os.name");
-
-
// 当前用户程序所在目录
-
String userDir = System.getProperties().getProperty(
"user.dir");
-
-
// JDK的安装目录
-
String jdkDir = System.getProperties().getProperty(
"java.ext.dirs");