动手动脑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<Object> {
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 preVisitDirectory(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;
Path fileTree = Paths.get("D:/");
titletwo walk=new titletwo();
EnumSet<FileVisitOption> 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<Path>() { @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<Path>() { @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文件与类动手动脑的更多相关文章

  1. JAVA文件操作类和文件夹的操作代码示例

    JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...

  2. JAVA语法基础作业——动手动脑以及课后实验性问题 (八)

    一.动手动脑 运行AboutException.java示例,了解Java中实现异常处理的基础知识. 1)源代码 import javax.swing.*; class AboutException ...

  3. JAVA方法03之动手动脑问题解决

    动手动脑1.当JAVA里定义的函数中去掉static后,怎么办?(如下程序,将square()函数的static去掉) public class SquareIntTest { public stat ...

  4. 【安卓】安卓res文件夹下的资源文件与R.java文件里面类的对应关系

    对于drawable.layout.menu文件夹下的每一个文件都分别会在R.java文件里面生成drawable.layout.menu类的一个常量,类名就是文件夹的名字,常量的名字就是文件名字. ...

  5. Java文件File类学习总结

    java.io.File类 代表文件和目录,在开发中,读取文件.生成文件.删除文件.修改文件的属性都会用到该类. 常见构造方法: public File(String pathName){} 以pat ...

  6. Java文件操作类效率对比

    前言 众所周知,Java中有多种针对文件的操作类,以面向字节流和字符流可分为两大类,这里以写入为例: 面向字节流的:FileOutputStream 和 BufferedOutputStream 面向 ...

  7. eclipse4.2+安装modelgoon插件,该插件支持在eclipse直接依据java文件生产类图

    安装条件: 1. 确保JDK环境OK 2.该插件安装是基于eclipse kepler(4.2) (并非表示其它版本号不能安装,仅仅是博主仅仅在4.2版本号上測试了.预计4.3版本号还是支持的,可是3 ...

  8. JAVA文件操作工具类(读、增、删除、复制)

    使用JAVA的JFinal框架 1.上传文件模型类UploadFile /** * Copyright (c) 2011-2017, James Zhan 詹波 (jfinal@126.com). * ...

  9. java文件工具类

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

随机推荐

  1. mybatis缓存问题导致无法查询到数据

    今天查询记录时,发现重复查询结果时出现空记录的情况 查看控制台信息,只有红色框选部分有进行查询数据,而其他没有.然而上图可看出有两条数据是能展现出来的,故有可能是mybatis缓存命中的. 因此在ma ...

  2. 【译文连载】 理解Istio服务网格(第二章 安装)

    全书目录 第一章 概述 本文目录 1.命令行工具安装 2. Kubernetes/OpenShift安装 3. Istio安装 4.示例Java微服务安装 4.1 源码概览 4.2 编译和部署cust ...

  3. c++算法:计算行列式的值(详细讲解)

    参考了:https://blog.csdn.net/u011885865/article/details/42032229 需要的基础:学过<线性代数>,知道行列式值的求法 基本公式:对于 ...

  4. Tomcat安装教程及常见错误解决方法

    目录 Tomcat安装教程及常见错误解决方法 一.安装前准备 ·熟悉自己电脑的操作系统版本(32位or64位) ·保证电脑上已经装好JDK,并且已经设置好环境变量. 二.Tomcat安装教程(以Tom ...

  5. java代码之美(16) ---Java8 Optional

    Java8 Optional 一句话介绍Optional类:使用JDK8的Optional类来防止NullPointerException(空指针异常)问题. 一.前言 在我们开放过程中,碰到的异常中 ...

  6. create-react-app 打包后静态文件过大 webpack优化

    在最近的项目里,页面和静态文件并不是很多的情况下,打包后发现产出的静态资源却很大. 1.关掉sourcemap 在config/webpack.config.js文件里,大概30几行的位置添加这样一句 ...

  7. Shell脚本 统计店中店导出数据

    有一个数据文件  yue.csv  是这样的   #head yue.csv  日期,商家名称,要求在线数,当天在线数,要求在线时长,在线时长达标数,   ……"2017-12-31&quo ...

  8. centos6.5下编译安装单实例MySQL5.1

    MySQL5.1版本安装3步曲: 1) ./config 指定编译安装参数 2) make 3) make install 查看系统版本号 [root@meinv01 ~]# cat /etc/red ...

  9. [Python]pip 国内源

    临时使用方法 pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com celery END

  10. Nodejs中,path.join()和path.resolve()的区别

    在说path.join()和path.resolve()的区别之前,我先说下文件路径/和./和../之间的区别 /代表的是根目录: ./代表的是当前目录: ../代表的是父级目录. 然后再来说下pat ...