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学习]的更多相关文章

  1. Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream

    Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/ ...

  2. Java IO流学习总结八:Commons IO 2.5-IOUtils

    Java IO流学习总结八:Commons IO 2.5-IOUtils 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/550519 ...

  3. Java IO流学习总结(1)

    Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本 ...

  4. Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter

    在上一篇文章中Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream介绍了缓冲流中的字节流,而这一篇着重介绍缓冲流中字符流Buffered ...

  5. Java IO流学习总结一:输入输出流

    Java IO流学习总结一:输入输出流 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54292148 本文出自[赵彦军的博客] J ...

  6. Java IO流学习

    Java IO流学习 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是 ...

  7. 系​统​吞​吐​量​(​T​P​S​)​、​用​户​并​发​量​、​性​能​测​试、IO负载学习

    目录 . 如何评价一个系统的性能 . 系统吞度量 . 网络上下行数据量 . 客户端-服务端TCP同时长连接数量 . 系统性能的指标计算 . 系统IO负载 1. 如何评价一个系统的性能 在文章的开始,我 ...

  8. IO流学习小结

    今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...

  9. JAVA.IO流学习笔记

    一.java.io 的描述 通过数据流.序列化和文件系统提供系统输入和输出.IO流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...

随机推荐

  1. sizeof和strlen函数区别

    一.sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等.    它的功能是:获得保 ...

  2. playbook部署coredns

    playbook部署coredns 说明test1是主控节点,目的是给test4 node节点安装coredns, 1.coredns-1.2.2.tar.gz安装包放到主控节点/server/sof ...

  3. MongoDB集群-主从复制(副本集)、failover

    1.概念 主从复制的目的:数据冗余.备份.读写分离 主从方式:一主一从(不推荐,只能实现复制,主节点挂掉且未重新启动的时候,无法提升从节点为master),一主一从一裁判,一主多从 复制方式:主节点记 ...

  4. CentOS下Hive搭建

    目录 1. 前言 2. MySQL安装 2.1 更换yum下载源 2.2 开启MySQL远程登录 3. Hive安装 3.1 下载Hive 3.2 安装Hive和更改配置文件 4. MySQL驱动包的 ...

  5. C语言递归之求根到叶节点数字之和

    题目描述 给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节点 ...

  6. 新建ASPX页面,并练习div布局和table布局

    1,Div水平居中: <div style="margin:0px auto;width:100px;height:100px;background:#FF0000;"> ...

  7. JS 获取当前定位

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 2019牛客暑期多校训练营(第七场)-C Governing sand

    题目链接:https://ac.nowcoder.com/acm/contest/887/C 题意:有n种树,给出每种数的高度.移除的花费和数量,求最小花费是多少使得剩下树中最高的树的数量占一半以上. ...

  9. csp模拟赛低级错误及反思

    \(csp\)模拟赛低级错误及反思. 1.没开\(longlong\). 反思:注意数据类型以及数据范围. 2.数组越界(前向星数组未开两倍,一题的数据范围应用到另一题上,要开两倍的写法为开两倍数组) ...

  10. [git] git error: unable to unlink old

    今天git pull ,结果报错 :   git error: unable to unlink old 原因是   文件夹内 一个exe 处于打开状态. 哈哈哈哈,又是个低级错误~~~ 下次注意呀~