IO[File_API学习]
IO流[File_API学习的使用]
File_API学习的使用
1、名称分隔符 / \ separator
java下路径:\ 在Windows下的路径,在java里 \ 是转义字符。需要 \\
String path = "D:\\JavaCode\\Study_se\\imges\\bug.png";
java里路径表示一般推荐
String path = "D:/JavaCode/Study_se/imges/Dilraba.jpg";
常量拼接
path = "D:" + File.separator + "JavaCode" + File.separator + "Study_se" + File.separator + "src"
+ File.separator + "imges" + File.separator + "bug.png";
2、构建File对象
String path = "D:/JavaCode/Study_se/imges/Dilraba.jpg";
// 1、构造File对象[直接传入名称]
File src = new File(path);
System.out.println(src.length());// 打印文件的大小 // 2、通过父子构建
src = new File("D:/JavaCode/Study_se/imges","Dilraba.jpg");
System.out.println(src.length());// 打印文件的大小 // 父对象子名称
src = new File(new File("D:/JavaCode/Study_se/imges"),"Dilraba.jpg");
System.out.println(src.length());
3、相对路径 or 绝对路径
1、存在盘符:绝对路径
2、不存在盘符:相对路径,当前目录。user.dir
String path = "D:/JavaCode/Study_se/imges/Dilraba.jpg"; // 绝对路径
File src = new File(path);
// 获得绝对路径getAbsolutePath
System.out.println(src.getAbsolutePath()); // 相对路径
src = new File("Dilraba.jpg");
System.out.println(src.getAbsolutePath()); // 用户的目录,当前的工程
System.out.println(System.getProperty("user.dir"));
4、名称 or 路径
1.getName():返回名称
2.path.getPath():返回相对路径或者绝对路径
3.getAbsolutePath():返回绝对路径
4.getParent():返回上一层,父路径不存在则为null
5.getParentFile():返回父对象
// 基本信息
File path = new File("D:/JavaCode/Study_se/imges/Dilraba.jpg");
System.out.println("返回名称:" + path.getName());// 返回名称:Dilraba.jpg
// path.getPath() 相对或者绝对
System.out.println("返回路径:" + path.getPath());// 返回路径:D:\JavaCode\Study_se\imges\Dilraba.jpg
File src = new File("Dilraba.jpg");
System.out.println("相对路径:" + src.getPath());// 相对路径:Dilraba.jpg
System.out.println("返回绝对路径:" + path.getAbsolutePath());// 返回绝对路径:D:\JavaCode\Study_se\imges\Dilraba.jpg
System.out.println("返回父路径:" + path.getParent());// 返回父路径:D:\JavaCode\Study_se\imges
// 父路径不存在,则返回null
System.out.println(src.getParent());// null
System.out.println(path.getParentFile().getName());
5、文件的状态
1.文件是否存在:exists
2.存在
文件:isFile
文件夹:isDirector
// 文件状态
src = new File("xxx");
if(src == null || !src.exists()) {
System.out.println("文件不存在");
} else {
if(src.isFile()) {
System.out.println("文件操作");
} else {
System.out.println("文件夹操作");
}
}
6、其他信息 length():返回一个文件的字节数 不存在创建 ,存在就返回true :createNewFile();【异常抛出去】 删除已存在文件:delete()
File file = new File("D:/JavaCode/Study_se/imges/Dilraba.jpg");
System.out.println("返回文件的长度:" + file.length());// 返回文件的长度:35004
file = new File("D:/JavaCode/Study_se/imges");
System.out.println("文件夹:" + file.length());// 文件夹:0
file = new File("D:/JavaCode/Study_se/a.txt");
boolean flag = file.createNewFile();
System.out.println(flag);

7、文件夹的创建_遍历
* 1、makdir:上级目录必须存在,否则就创建失败
* 2、makdirs:上级目录可以存在,不存在就先创建上一级【推荐】
File dir = new File("D:/JavaCode/Study_se/dir/test");
// 创建目录
boolean flag = dir.mkdirs();
System.out.println(flag);

* 3、list():列出下级名称
* 4、listFile():列出下级File对象
* 5、listRoots():列出所有盘符
8、打印子孙级目录和文件的名称
package boom.io;
import java.io.File;
public class DirDeme4 {
/**
* 递归:方法自己调用自己
* @param args
*/
public static void main(String[] args) {
File src = new File("D:/BaiduPCS-Go");
printName(src,0);
}
// 打印子孙级目录和文件的名称
public static void printName(File src,int deep){
// 控制前面层次
for(int i=0;i<deep;i++){
System.out.print("-");
}
// 打印名称
System.out.println(src.getName());
if(src == null || !src.exists()){// 递归头
return;
}else if (src.isDirectory()){// 是否是目录
for(File s : src.listFiles()){
printName(s,deep+1);// 递归体
}
}
}
}

9、获取文件的大小
package boom.io;
import java.io.File;
public class DirDeme5 {
/**
* 递归:统计文件夹的大小
* @param args
*/
public static void main(String[] args) {
File src = new File("D:/BaiduPCS-Go");
count(src);
System.out.println(len);
}
private static long len = 0;
public static void count(File src){
// 获取文件的大小
if(src != null && src.exists()){
if (src.isFile()) {// 大小
len += src.length();
} else {// 子孙级
for (File s : src.listFiles()) {
count(s);
}
}
}
}
}
IO[File_API学习]的更多相关文章
- Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream
Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/ ...
- Java IO流学习总结八:Commons IO 2.5-IOUtils
Java IO流学习总结八:Commons IO 2.5-IOUtils 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/550519 ...
- Java IO流学习总结(1)
Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本 ...
- Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter
在上一篇文章中Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream介绍了缓冲流中的字节流,而这一篇着重介绍缓冲流中字符流Buffered ...
- Java IO流学习总结一:输入输出流
Java IO流学习总结一:输入输出流 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54292148 本文出自[赵彦军的博客] J ...
- Java IO流学习
Java IO流学习 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是 ...
- 系统吞吐量(TPS)、用户并发量、性能测试、IO负载学习
目录 . 如何评价一个系统的性能 . 系统吞度量 . 网络上下行数据量 . 客户端-服务端TCP同时长连接数量 . 系统性能的指标计算 . 系统IO负载 1. 如何评价一个系统的性能 在文章的开始,我 ...
- IO流学习小结
今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...
- JAVA.IO流学习笔记
一.java.io 的描述 通过数据流.序列化和文件系统提供系统输入和输出.IO流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...
随机推荐
- Kafka管理与监控——查看和重设消费者组位移
kafka 0.11.0.0版本丰富了kafka-consumer-groups脚本的功能,用户可以直接使用该脚本很方便地为已有的consumer group重新设置位移. 前提必须consumer ...
- Asp.Net调用后台变量的三种写法
1.Asp.Net中几种相似的标记符号: < %=...%>< %#... %>< % %>< %@ %>解释及用法 答: < %#... %&g ...
- docker启动cavisor监控
docker启动cavisor监控 docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys: ...
- 前端学习(一) body标签(下)
今日主要内容: 列表标签 <ul>.<ol>.<dl> 表格标签 <table> 表单标签 <fom> 一.列表标签 列表标签分为三种. 1 ...
- MongoDB集群-主从复制(副本集)、failover
1.概念 主从复制的目的:数据冗余.备份.读写分离 主从方式:一主一从(不推荐,只能实现复制,主节点挂掉且未重新启动的时候,无法提升从节点为master),一主一从一裁判,一主多从 复制方式:主节点记 ...
- Spring Boot开发Web应用之JSP篇
前言 上一篇介绍了Spring Boot中使用Thymeleaf模板引擎,今天来介绍一下如何使用SpringBoot官方不推荐的jsp,虽然难度有点大,但是玩起来还是蛮有意思的. 正文 先来看看整体的 ...
- redis集群 应该注意的问题
redis cluster注意的问题 : ‘cluster-require-full-coverage’参数的设置.该参数是redis配置文件中cluster模式的一个参数,从字面上基本就能看出它的作 ...
- HTML5元素周期表
HTML5元素周期表 根元素 1. html 文档根元素 元数据和脚本 1. head HTML文档中的第一个元素.包含文档元数据 2. title 文档标题 3. meta 文档的元数据. meta ...
- 使用 WijmoJS 轻松实现撤消重做(Undo /Redo)
使用 WijmoJS 轻松实现撤消重做(Undo /Redo) 在V2019.0 Update2 的全新版本中,WijmoJS能够轻松实现撤消和重做操作,使Web应用程序的使用更加友好.更加高效. 不 ...
- 设置gridView 行号 行号宽
gridView1.IndicatorWidth=30; //设置行号宽度 //对gridView1的CustomDrawRowIndicator事件进行操作 进行行号显示 private stati ...