We find this code on page 61, for ListSelectFiles.java
final String[] files =
new File("fpij").list(new java.io.FilenameFilter() {
public boolean accept(final File dir, final String name) {
return name.endsWith(".java");
}
});
System.out.println(files);
But this just prints the identifier of the array object, not the array contents.
The last line needs to be for example
System.out.println(Arrays.stream(files).collect(Collectors.joining("\n")));
The original code also NullPointerExcepts if “fpij” is nonexistent or not a directory.
Thus
public void listSelectFiles() {
String dir = "/home/aloy";
final String[] files =
new File(dir).list(new java.io.FilenameFilter() {
public boolean accept(final File _dir, final String name) {
return name.endsWith(".java");
}
});
String res =
(files == null) ?
("Looks like '" + dir + "' is not a directory") :
(Arrays.stream(files).collect(Collectors.joining("\n")));
System.out.println(res);
}