Java文件与类动手动脑实例详解

网友投稿 354 2022-12-22


Java文件与类动手动脑实例详解

动手动脑1:

使用Files. walkFileTree()找出指定文件夹下所有大于指定大小(比如1M)的文件。

package classjava;

import java.io.IOException;

import java.nio.file.FileSystems;

import java.nio.file.FileVisitOption;

import java.nio.file.FileVisitResult;

import java.nio.file.FileVisitor;

import java.nio.file.Files;

import java.nio.file.Path;

import java.nio.file.Paths;

import java.nio.file.attribute.BasicFileAttributes;

import java.util.EnumSet;

public class titletwo implements FileVisitor {

private long accepted_size;

public void titletwo(String glob,long accepted_size) {

FileSystems.getDefault().getPathMatcher("glob:" +glob);

this.accepted_size=accepted_size;

}

void search(Path file) throws IOException {

long size = (Long) Files.getAttribute(file, "basic:size");

if(size ==accepted_size) {

System.out.println(file);

}

}

@Override

public FileVisitResult postVisitDirectory(Object dir, IOException exc)throws IOException {

return FileVisitResult.CONTINUE;

}

@Override

public FileVisitResult prehttp://VisitDirectory(Object dir, BasicFileAttributes attrs)throws IOException {

return FileVisitResult.CONTINUE;

}

@Override

public FileVisitResult visitFile(Object file, BasicFileAttributes attrs)throws IOException {

search((Path) file);

return FileVisitResult.CONTINUE;

}

@Override

public FileVisitResult visitFileFailed(Object file, IOException exc)throws IOException {

return FileVisitResult.CONTINUE;

}

public static void main(String[] args) throws IOException{

String glob= "*.jpg";

long size = 28672;

http:// Path fileTree = Paths.get("D:/");

titletwo walk=new titletwo();

EnumSet opts=EnumSet.of(FileVisitOption.FOLLOW_LINKS);

System.out.println("D盘中大小等于28672字节的文件有");

Files.walkFileTree(fileTree, opts, Integer.MAX_VALUE, walk);

}

}

使用Files. walkFileTree()找出指定文件夹下所有扩展名为.txt和.java的文件。

package classJava;

import java.io.IOException;

import java.nio.file.FileSystems;

import java.nio.file.FileVisitResult;

import java.nio.file.Files;

import java.nio.file.Path;

import java.nio.file.PathMatcher;

import java.nio.file.Paths;

import java.nio.file.SimpleFileVisitor;

import java.nio.file.attribute.BasicFileAttributes;

public class titletwo {

public static void main(String args[]) throws IOException {

String glob = "glob:**/*.{java,txt}";

String path = "D:/";

match(glob, path);

}

public static void match(String glob, String location) throws IOException {

final PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher( glob);

Files.walkFileTree(Paths.get(location), new SimpleFileVisitor() {

@Override

public FileVisitResult visitFile(Path path,

BasicFileAttributes attrs) throws IOException {

if (pathMatcher.matches(path)) {

System.out.println(path);

}

return FileVisitResult.CONTINUE;

}

@Override

public FileVisitResult visitFileFailed(Path file, IOException exc)

throws IOException {

return FileVisitResult.CONTINUE;

}

});

}

}

使用Files. walkFileTree()找出指定文件夹下所有包容指定字符串的txt文件。

package classJava;

import java.io.IOException;

import java.io.*;

import java.nio.file.FileSystems;

import java.nio.file.FileVisitResult;

import java.nio.file.Files;

import java.nio.file.Path;

import java.nio.file.PathMatcher;

import java.nio.file.Paths;

import java.nio.file.SimpleFileVisitor;

import java.nio.file.attribute.BasicFileAttributes;

public class titletwo {

public static void main(String args[]) throws IOException {

String glob = "glob:**/*.txt";

String path = "D:\\wenjian";

match(glob, path);

}

public static void match(String glob, String location) throws IOException {

final PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher( glob);

Files.walkFileTree(Paths.get(location), new SimpleFileVisitor() {

@Override

public FileVisitResult visitFile(Path path,

BasicFileAttributes attrs) throws IOException {

if (pathMatcher.matches(path)) {

BufferedReader reader =Files.newBufferedReader(path);//读取文件内的内容

String line=null;

while((line = reader.readLine())!=null) {

if(line.equals("account"))//若读取的内容等于“account"则输出文件名

{

System.out.println(path);

break;

}

}

}

return FileVisitResult.CONTINUE;

}

@Override

public FileVisitResult visitFileFailed(Path file, IOException exc)

throws IOException {

return FileVisitResult.CONTINUE;

}

});

}

}

动手动脑2:

java.nio.file.WatchService文件系统监视服务的接口类,它的具体实现由监视服务提供者负责加载。

java.nio.file.Watchable 实现了 java.nio.file.Watchable 的对象才能注册监视服务 WatchService。java.nio.file.Path实现了 watchable 接口,后文使用 Path 对象注册监视服务。

java.nio.file.WatchKey 该类代表着 Watchable 对象和监视服务 WatchService 的注册关系。WatchKey 在 Watchable 对象向 WatchService 注册的时候被创建。它是 Watchable 和 WatchService 之间的关联类。

以上就是本次介绍的关于Java文件与类动手动脑实例的全部知识点,感谢大家的学习和对我们的支持。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:必须详细与全面的Java开发环境搭建图文教程
下一篇:如何解决SpringBoot集成百度UEditor图片上传后直接访问404
相关文章

 发表评论

暂时没有评论,来抢沙发吧~