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