在程序开发过程中,程序员都是在Windows上的IDE上进行开发,所以创建文件时一般也不会有什么问题,但如果程序部署到Linux上,就有可能因为Linux和Windows的文件系统的不同而导致文件创建失败。

    一般Windows电脑下都会有该目录:

    1. String path = "C:\\Users";
    2. String fileName = "文本文件.txt";
    3. File file = new File(path,fileName);

    此时我们在该目录下创建新文件自然不会有什么问题,但如果在Linux下,因为Linux系统没有C盘,创建文件自然会失败,程序就自然而然的运行出错了。

    所以在创建文件时,我们不能理所当然的默认自己电脑上有的目录,别的电脑也有,毕竟每个人的电脑的分盘都不一样,即使是同为Windows系统,每个电脑都有的只是C盘,至于D、E、F盘则都是根据个人喜欢而创建的,更不用说文件系统不同的Linux上了,所以我们编程时需要考虑到文件系统的不同以及分盘的不同。

    1.拼接文件路径,路径连接时不使用”\“,改为使用自适应操作系统的文件分隔符:File.seperator。
    2.编写文件路径时,不自己编写电脑上有的文件路径,要确保使用的文件路径不同电脑也存在,即是:

    1. String userHome = System.getproperties().getProperty("user.home");


    此时userHome即为用户的主目录,与操作系统无关,则在该文件夹下创建文件,必定能成功创建,所以不会存在将程序部署到Linux系统上就发生程序运行失败的现象。

    注:Java常见的系统路径与获取方法:

    1. // 分隔符
    2. String fileSeperator = File.seperator;
    3. /**fileSeperator会根据操作系统的不同而使用正确的文件分隔符符*/
    4. // 用户主目录
    5. String userHome = System.getproperties().getProperty("user.home");
    6. // Java实时运行环境的安装目录
    7. String javaPath = System.getproperties().getProperty("java.home");
    8. // 操作系统名称
    9. String osName = System.getproperties().getProperty("os.name");
    10. // 当前用户程序所在目录
    11. String userDir = System.getproperties().getProperty("user.dir");
    12. // JDK的安装目录
    13. String jdkDir = System.getproperties().getProperty("java.ext.dirs");