file.list方法在java中不起作用

时间:2015-03-05 13:38:48

标签: java

我创建了一个名为test的dirctory。在这个目录中,我创建了一个名为test.txt的文件。当我执行下面的程序时,cmd上list方法的输出不显示测试目录中的文件列表。

以下是我的代码:

import java.io.*;

public class f1{
    public static void main(String args[]){
    try{
        File f = new File("test");
                System.out.println(f.exists());
                System.out.println(f.isDirectory());
                System.out.println(f.isFile());
                System.out.println(f.list());
    }
    catch(Exception e){

    }
}

}

以下是输出:

 true
 true
 false
 [Ljava.io.File;@15db9742

4 个答案:

答案 0 :(得分:5)

file.list()返回String[]。由于数组不具有toString()的实现(使用println时调用),因此它使用Object的默认实现,返回ClassName @ { {1}}。要将数组转换为String,可以使用hashCode类。

java.util.Arrays

答案 1 :(得分:1)

您无法直接打印数组。 File.list()返回一个字符串数组。有一个实用程序类Arrays,它允许您打印它而无需手动迭代它:

Arrays.toString(f.list())

答案 2 :(得分:1)

file.list()

  

返回一个字符串数组,用于命名文件和目录   此抽象路径名表示的目录。

Java Docs

答案 3 :(得分:-2)

list返回一个字符串数组。

所以,如果你指定一个正确的文件URI,它应该工作。

import java.io.*;

public class f1
{
    public static void main(String args[]){
        try
        {
            File f = new File("test");
                    System.out.println(f.exists());
                    System.out.println(f.isDirectory());
                    System.out.println(f.isFile());
                    System.out.println(f.list());


                    for (int i = 0; i < f.list().length; i++)
                    {
                        System.out.println(f.list()[i]);
                    }
        }
        catch(Exception e){

        }
    }
}