当我得到带有代码的java.lang.File类时File file = new File("e:/");,我当然得到了一个代表e:\目录的File类.
但是如果我得到一个带有代码的File类,File file = new File("e:");而我只是在驱动器E:中,那么我得到一个File类代表当前目录.
假设我在目录E:\ dir \中,并且该目录有一个名为Test.java的文件.它的内容是:
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("e:");
File[] files = file.listFiles();
for(File f: files){
System.out.println(f + " " + f.exists());
}
}
}
Run Code Online (Sandbox Code Playgroud)
打开cmd工具并导航到目录e:\ dir,在其中执行以下命令:
E:\dir> javac Test.java
E:\dir> java Test
Run Code Online (Sandbox Code Playgroud)
我有:
e:\Test.class false
e:\Test.java false
Run Code Online (Sandbox Code Playgroud)
这是一个java jdk错误吗?
来自@JimGarrison的其他信息:
我运行了这段代码
public class Foo3
{
public static void main(String[] args) throws Exception
{
File …Run Code Online (Sandbox Code Playgroud) 我使用++:运算符来获取两个集合的集合,但是我使用这两个方法获得的结果是不一致的:
scala> var r = Array(1, 2)
r: Array[Int] = Array(1, 2)
scala> r ++:= Array(3)
scala> r
res28: Array[Int] = Array(3, 1, 2)
scala> Array(1, 2) ++: Array(3)
res29: Array[Int] = Array(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
为什么++:和++:=运营商会给出不同的结果?++操作员不会出现这种差异.
我使用的Scala版本是2.11.8.