java8--IO工具类(java疯狂讲义3复习笔记)
Paths类
public static void pathTest(){
Path path = Paths.get("~");
System.out.println(path);
System.out.println(path.getNameCount());
System.out.println(path.getRoot());
Path absolutePath = path.toAbsolutePath();
System.out.println(absolutePath);
System.out.println(absolutePath.getNameCount());
System.out.println(absolutePath.getFileSystem());
//依次打印父路径
absolutePath.forEach(name->System.out.println(name));
}
Files类 ,这个是重点
public static void filesTest() throws FileNotFoundException, IOException{
//复制文件
Files.copy(Paths.get("abc.txt"), new FileOutputStream("testFile/abc2.txt"));
//判断是否隐藏文件
System.out.println(Files.isHidden(Paths.get("abc.txt")));
//读取文件的所有行到list
List<String> lines = Files.readAllLines(Paths.get("abc.txt"));
lines.forEach (line -> System.out.println(line));
//文件大小
System.out.println(Files.size(Paths.get("abc.txt")));
//向文件里写入东西
List<String> poem = new ArrayList<String>();
poem.add("quzhinannnnnnnnnnn曲志楠南安安那那那那那");
poem.addAll(lines);
Files.write(Paths.get("testFile/path.txt"), poem, Charset.forName("utf-8"));
//列出文件目录下的所有文件(不递归)
Files.list(Paths.get("/")).forEach(Name -> System.out.println(Name));
//打印所有文件到控制台
Files.lines(Paths.get("abc.txt"),Charset.forName("utf-8")).forEach(line -> System.out.println(line));
//查看存储空间
FileStore fs = Files.getFileStore(Paths.get("/"));
System.out.println(fs.getTotalSpace());
}
FileVisitor遍历文件和目录

public static void walkFileTree() throws IOException{
Files.walkFileTree(Paths.get("."), new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
// TODO Auto-generated method stub
// return super.preVisitDirectory(dir, attrs);
System.out.println("正在访问:" + dir + "目录");
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
// TODO Auto-generated method stub
// return super.visitFile(file, attrs);
System.out.println("\t正在访问" + file + "文件");
if (file.endsWith("LearnIO.java")) {
System.out.println("******找到目标文件LearnIO.java******");
return FileVisitResult.TERMINATE; // 找到了就终止
}
return FileVisitResult.CONTINUE; // 没找到继续找
}
}); ;
}
使用WatchService监控文件变化

private static void WatchServiceTest() throws IOException, InterruptedException {
// TODO Auto-generated method stub
WatchService watchService = FileSystems.getDefault().newWatchService();
Paths.get(".").register(watchService,
StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_DELETE,
StandardWatchEventKinds.ENTRY_MODIFY
);
while(true){
//获取下一个文件的变化事件
WatchKey key = watchService.take();
for(WatchEvent<?> event : key.pollEvents()){
System.out.println(event.context()+"文件发生了"
+event.kind()+"事件");
}
//重设WatchKey
boolean valid = key.reset();
//如果重设失败,退出监听
if(!valid){
break;
}
}
}
访问文件属性,这个感觉用的不多,用到时再来看吧.
java8--IO工具类(java疯狂讲义3复习笔记)的更多相关文章
- java8--类加载机制与反射(java疯狂讲义3复习笔记)
本章重点介绍java.lang.reflect包下的接口和类 当程序使用某个类时,如果该类还没有被加载到内存中,那么系统会通过加载,连接,初始化三个步骤来对该类进行初始化. 类的加载时指将类的clas ...
- java8--网络编程(java疯狂讲义3复习笔记)
重点复习一下网络通信和代理 java的网络通信很简单,服务器端通过ServerSocket建立监听,客户端通过Socket连接到指定服务器后,通信双方就可以通过IO流进行通信. 需要重点看的工具类:I ...
- java8--NIO(java疯狂讲义3复习笔记)
NIO采用内存映射文件的方式处理输入输出,NIO将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样来访问文件了(这种方式模拟了操作系统上的虚拟内存的概念),通过这种方式来进行输入输出比传统的 ...
- java8--异常处理(java疯狂讲义3复习笔记)
try,catch,finally,throw,throws java将异常分为两种,Checked异常和Runtime异常. IndexOutOfBoundsException NumberForm ...
- java8--多线程(java疯狂讲义3复习笔记)
多线程这块,平时用的框架里都封装好了,只有写批处理和工具包时用过几次.现在水平仅仅限于会用的程度,需要全面深入学习多线程. 主要内容:创建线程,启动线程,控制线程,多线程的同步,线程池,使用线程安全的 ...
- java8--IO(java疯狂讲义3复习笔记)
产生文件 File file = new File("abc.txt"); if(!file.exists()){ System.out.println(file.exists() ...
- java8--Mysql数据库与JDBC编程(java疯狂讲义3复习笔记)
JDBC:java database connectivity 数据库基本命令: 启动 show databases; create database [if not exists] 数据库名; do ...
- 参考《Java疯狂讲义》
参考<Java疯狂讲义>Lambda表达式支持将代码块作为方法参数,Lambda表达式允许使用更简洁的代码来创建只有一个抽象方法的接口(这种接口被称为函数式接口)的实例 1. Lambda ...
- JavaSE-基础语法(二)-系统类(java.lang.*)和工具类(java.util.*)
系统类(java.lang.*)和工具类(java.util.*) 一.系统类(java.lang.*) 这个包下包含java语言的核心类,如String.Math.System和Thread类等,使 ...
随机推荐
- python re 正则表达式
元字符和其含义 . 匹配除换行符以外的任意字符 \ 转义字符,使后一个字符改变原来的意思 \w 匹配字母.数字.下划线:[A-Za-z0-9_] \W 匹配特殊字符:[^A-Za-z0-9_] \s ...
- POJ 3621 Sightseeing Cows (最优比率环 01分数划分)
题意: 给定L个点, P条边的有向图, 每个点有一个价值, 但只在第一经过获得, 每条边有一个花费, 每次经过都要付出这个花费, 在图中找出一个环, 使得价值之和/花费之和 最大 分析: 这道题其实并 ...
- luogu2468 [SDOI2010]粟粟的书架
二合一-- #include <iostream> #include <cstdio> using namespace std; int r, c, m, a[205][205 ...
- 省市区名称code
https://blog.csdn.net/hichinamobile/article/details/51725090 --省 create table t_base_provinces( id ) ...
- HDU 5076 Memory
Memory Time Limit: 4000ms Memory Limit: 262144KB This problem will be judged on HDU. Original ID: 50 ...
- E题
题目大意: 找到一个最小的l值,使得a到b-l+1中任取一个数开始前进l次,中间包含至少有k个素数,如果找不到,返回-1: 运用素数打表法和2分法便能简单搞定: 题目链接:http://codefor ...
- Divide Groups(分组)(二分图染色)
题目链接 题目大意是说输入数字n 然后告诉你第i个人都认识谁? 让你把这些人分成两堆,使这每个堆里的人都互相认识. 做法:把不是互相认识的人建立一条边,则构建二分图,两堆的人肯定都互相认识,也就是说, ...
- SQL SERVER 2012 第四章 连接 JOIN语句的早期语法结构 & 联合UNION
1/内部连接的早期语法结构 INNER JOIN SELECT * FROM Person.Person JOIN HumanResources.Employee ON Person.Person.I ...
- winServer-常用winrm命令
学习WinServer必须学习powershell,学习powershell必须掌握远程管理服务器的方法,所以必须学会winrm来远程管理服务器 记录一些常用的winrm命令和错误 常用命令 //在P ...
- [Bzoj1030][JSOI2007]文本生成器(AC自动机)(dp)
1030: [JSOI2007]文本生成器 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5254 Solved: 2172[Submit][Stat ...