遍历目录树,lambad表达式
package Java10. FilesWalk ;
import java. io. IOException ;
import java. nio. file. Files ;
import java. nio. file. Path ;
import java. nio. file. Paths ;
import java. util. stream. Stream ;
public class FilesWalk1 {
public static void main ( String [ ] args) throws IOException {
Path p = Paths . get ( "D:\\java\\test1\\src" ) ;
Stream < Path > s = Files . walk ( p) ;
s. forEach ( path -> System . out. println ( path) ) ;
}
}
根据条件遍历,lambad表达式
package Java10. FilesWalk ;
import java. io. IOException ;
import java. nio. file. Files ;
import java. nio. file. Path ;
import java. nio. file. Paths ;
import java. util. stream. Stream ;
public class FilesWalk2 {
public static void main ( String [ ] args) throws IOException {
Path p1 = Paths . get ( "D:\\java\\test1\\src" ) ;
Stream < Path > s1 = Files . walk ( p1) ;
s1. forEach ( path -> {
if ( path. toString ( ) . endsWith ( "java" ) ) {
System . out. println ( path) ;
}
} ) ;
}
}
根据条件查找对应的文件,lambad表达式
package Java10. FilesWalk ;
import java. io. IOException ;
import java. nio. file. Files ;
import java. nio. file. Path ;
import java. nio. file. Paths ;
import java. util. stream. Stream ;
public class FilesWalk3 {
public static void main ( String [ ] args) throws IOException {
Path p2 = Paths . get ( "D:\\java\\test1\\src" ) ;
Stream < Path > s2 = Files . find ( p2, 1 , ( x, y) -> x. toString ( ) . endsWith ( "java" ) ) ;
s2. forEach ( path -> System . out. println ( path) ) ;
}
}
Files.walkFileTree
package Java10. FilesWalk ;
import java. io. IOException ;
import java. nio. file. * ;
import java. nio. file. attribute. BasicFileAttributes ;
public class FilesWalk4 {
public static void main ( String [ ] args) throws IOException {
Path p3 = Paths . get ( "D:\\java\\test1\\src" ) ;
Files . walkFileTree ( p3, new FileVisitor < Path > ( ) {
@Override
public FileVisitResult preVisitDirectory ( Path dir, BasicFileAttributes attrs) throws IOException {
System . out. println ( "访问目录前" + dir) ;
if ( dir. toString ( ) . endsWith ( "Java1234" ) ) {
return FileVisitResult . SKIP_SUBTREE;
}
return FileVisitResult . CONTINUE;
}
@Override
public FileVisitResult visitFile ( Path file, BasicFileAttributes attrs) throws IOException {
System . out. println ( "访问文件" + file) ;
if ( file. toString ( ) . endsWith ( "Test03.java" ) ) {
return FileVisitResult . SKIP_SIBLINGS;
}
return FileVisitResult . CONTINUE;
}
@Override
public FileVisitResult visitFileFailed ( Path file, IOException exc) throws IOException {
System . out. println ( "访问文件失败" + file) ;
return FileVisitResult . CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory ( Path dir, IOException exc) throws IOException {
System . out. println ( "访问目录后" + dir) ;
return FileVisitResult . CONTINUE;
}
} ) ;
}
}