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类等,使 ...
随机推荐
- rpm 包管理器
rpm 包管理器 二进制应用程序的组成部分: 二进制文件.库文件.配置文件.帮助文件 程序包管理器:不同厂商的程序,包管理器也不同. debian:deb文件, dpkg包管理器 redhat: rp ...
- tomcat官网改版后下载方式
位于disk/tomcat目录下 http://archive.apache.org/dist/tomcat/ 具体例如:http://archive.apache.org/dist/tomcat/t ...
- 大数据学习——hive使用
Hive交互shell bin/hive Hive JDBC服务 hive也可以启动为一个服务器,来对外提供 启动方式,(假如是在itcast01上): 启动为前台:bin/hiveserver2 启 ...
- google的三篇论文
文章:MapReduce/GFS/BigTable三大技术资料 文章:Google File System(中文翻译) 文章:MapReduce:超大机群上的简单数据处理 文章:Google's Bi ...
- [转]ORA-38500: USING CURRENT LOGFILE option not available without stand
标签: oracle 10g 数据库 ora-38500 it 分类: IT author:skate time :2009/08/03 在dataguard启用实时恢复的时候,报如下错误: ORA- ...
- UITableView点击背景
系统自定义的点击背景有时间觉得效果不好想换个 - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelect ...
- 【最小费用最大流】N. April Fools' Problem (medium)
http://codeforces.com/contest/802/problem/N [题解] 方法一: #include<bits/stdc++.h> using namespace ...
- MTK GPIO 新增变量配置
主要涉及的文件: 1.需要配置preloader ,lk ,kernel vendor GPIO_YuSu.cmp文件增加IO别名: 2.需要配置preloader ,lk ,kernel vendo ...
- linux mail 发邮件
system('echo "'.$xmlHeader.$xmlBody.$xmlFooter.'" | mail -s "百度新闻源生成成功,地址=>http:// ...
- Spring注解 @Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析
@Repository.@Service.@Controller 这几个是一个类型,其实@Component 跟他们也是一个类型的 Spring 2.5 中除了提供 @Component 注释外,还定 ...