当前位置: 代码迷 >> J2SE >> 关于File的一个小疑点
  详细解决方案

关于File的一个小疑点

热度:192   发布时间:2016-04-23 20:13:50.0
关于File的一个小问题

File file = new File("d:\\a.txt");
File file = new File("d:\\\\\\\\\\\\a.txt");

今天无意间发现new一个File对象的时候,第二种写法也是可以,感觉有些怪怪的,哪位大侠可以解释一下?
------解决思路----------------------
这是操作系统导致的。d:\ 和 d:\\\\\\\\\\\\\\\ 表示的是同一个目录
------解决思路----------------------
public class FilePath {
public static void main(String[] args) {
System.out.println("\\\\\\");
File file=new File("E:\\\\\\\\\\testjava");
System.out.println(file.getAbsolutePath());
}
}

输出结果是:
\\\
E:\testjava
如果文件名以盘符和反斜杠开头,那么它是一个全路径(full path),例如:c:\temp。如果文件名仅以盘符开头,它是一个当前目录的相对路径。例如,c:temp.txt表示C盘当前目录的一个文件。需要注意的是"E:\\\\\\\\\\testjava"中斜杠为奇数时后面接的字母和斜杠刚好组成转义字符就会有问题的。你可加一个斜杠测试以t开头的文件。至于怎么解析路径的java代码没有给 他是通过FiIeSystem这个抽象类的nomalize方法解析的 底层好像不是java实现的了。
  相关解决方案