我希望捕获一个特定的文件名,我发现最简单的方法是使用一个名为JavaXT的类,基于官方网站(http://www.javaxt.com/javaxt-core/io/Directory/Recursive_Directory_Search)的例子我尝试在我的控制台应用程序中返回结果
javaxt.io.Directory directory = new javaxt.io.Directory("/temp");
javaxt.io.File[] files;
//Return a list of PDF documents found in the current directory and in any subdirectories
files = directory.getFiles("*.pdf", true);
System.out.println(files);
但返回的值总是奇怪的字符,如[Ljavaxt.io.File;@5266db4e
有人可以帮我打印正确的文件名吗?
答案 0 :(得分:1)
您的files变量是一个数组。你需要
for(javaxt.io.File f:files) System.out.println(f);
因为files是一个数组,Java将打印数组类型和十六进制哈希码。
答案 1 :(得分:1)
当您尝试打印数组时,您得到的是哈希码。如果您想要将其可视化,请尝试此操作:
Integer[] a = { 1, 2, 3 };
System.out.println(a);
输出将是
[Ljava.lang.Integer;@3244331c
如果要逐个元素打印,可以遍历数组。在这种情况下,使用for-each
:
for (javaxt.io.File f : files)
System.out.println(f);
注意,这将打印对象的方法String
返回的toString()
。