Java类File有4个构造函数:
>文件(文件父,字符串子)
从父抽象路径名创建一个新的File实例
子路径名字符串.
>文件(字符串路径名)
通过转换给定的路径名字符串来创建新的File实例
成为一个抽象的路径名.
> File(String parent,String child)
从父路径名字符串和a创建一个新的File实例
子路径名字符串.
>文件(URI uri)
通过将给定文件:URI转换为来创建新的File实例
一个抽象的路径名.
当我做:
File f=new File("myfile.txt");
是否创建了磁盘上的物理文件?或者JVM是否调用OS或者只在JVM中创建一个对象?
解决方法:
不,创建新的File对象不会在文件系统上创建文件.特别是,您可以创建引用不存在的路径(甚至是Windows上的驱动器)的File对象.
如果可能,构造函数会要求底层文件系统表示执行某种规范化操作,但这不需要文件存在.作为规范化的示例,请考虑在Windows上运行此代码:
File f = new File("c:\\a/b\\c/d.txt");
System.out.println(f);
这打印
c:\a\b\c\d.txt
显示正斜杠已经规范化为反斜杠 – 但a,b和c目录实际上并不存在.我认为规范化更多地与操作系统命名方案有关,而不是任何实际资源 – 我不相信它甚至可以在磁盘上查看文件是否存在.
标签:java,file,jvm
来源: https://codeday.me/bug/20190530/1186066.html