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. RocketMQ之八:重试队列,死信队列,消息轨迹

    问题思考 死信队列的应用场景? 死信队列中的数据是如何产生的? 如何查看死信队列中的数据? 死信队列的读写权限? 死信队列如何消费? 重试队列和死信队列的配置 消息轨迹 1.应用场景 一般应用在当正常 ...

  2. centos 系统字体库安装中文字体

    一,centos系统默认不支持中文字体的,需要手动安装windows系统中的中文字体库到centos中. 首先,将windows系统中的字体拷贝出来: windows:打开C:\Windows\Fon ...

  3. Qt在控制台输出中文的解决办法(转载)

    转载网址:https://blog.csdn.net/qq_22512533/article/details/75408984 按下快捷键Win+R,输入regedit打开注册变编辑器,依次找到 HK ...

  4. windows端口映射

    1. 查看netsh interface portproxy show all 2. 添加端口映射转发netsh interface portproxy add v4tov4 listenaddres ...

  5. DRF视图-请求与响应

    DRF视图 drf的代码简写除了在数据序列化体现以外,在视图中也是可以的.它在django原有的django.views.View类基础上,drf内部封装了许多子类以便我们使用. Django RES ...

  6. import、from 模块 import*、reload

    import 模块名.from 模块名 import* 均为导入模块,前者调用模块中函数或者变量时需要添加引用,即模块名.调用函数或者变量名 具体用法见下 https://jingyan.baidu. ...

  7. C语言递归之对称二叉树

    题目描述 给定一个二叉树,检查它是否是镜像对称的. 示例 二叉树 [1,2,2,3,4,4,3] 是对称的. / \ / \ / \ [1,2,2,null,3,null,3] 则不是镜像对称的. / ...

  8. 【VS开发】使用VS2010创建MFC ActiveX工程项目

    1.ActiveX的基本概念 ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行.这个容器包括WEB网页,应用程序窗体等... Activ ...

  9. 论文阅读 | Text Processing Like Humans Do: Visually Attacking and Shielding NLP Systems

    [code&data] [pdf] 主要工作 文章首先证明了对抗攻击对NLP系统的影响力,然后提出了三种屏蔽方法: visual character embeddings adversaria ...

  10. TP5之事务处理

    事务: 执行完A事件然后执行B事件,AB事件都执行完才算完成.可是有时候由于某些因素,A事件执行完,还没来得及执行B事件.怎么办?就需要回到A事件执行前.这种事情多见于电商支付功能. mysql事务要 ...