项目从windows 迁至linux时突然出现文件下载找不到文件的问题,经过排查,原来是文件路径出错了,导致找不到文件,
在windows中的文件分隔符是 \ 和 /都可以
但是在Linux中,文件分隔符只能是/
而File.separator是系统默认的文件分割符号,屏蔽了这些系统的区别。
用File.separator保证了在任何系统下不会出错。
比如说要在temp目录下建立一个test.txt文件,在Windows下应该这么写:
File file1 = new File ("C:\tmp\test.txt"); 或者 File file2 = new File ("C:/tmp/test.txt");都行
在Linux下则是这样的:
File file2 = new File ("C:/tmp/test.txt");
如果要考虑跨平台,则最好是这么写:
File myFile = new File("C:" + File.separator + "tmp" + File.separator, "test.txt");