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流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...
随机推荐
- 数组中存放model去重
在这个项目中出现"添加model数据"数组重复的情况,这就涉及到数组去重的问题了...... 1. 一开始使用的最笨的方法: 依次循环两个数组(原有的数组,选择的数组),双重for ...
- C#.NET中对称和非对称加密、解密方法汇总--亲测可用
C#.NET中对称和非对称加密.解密方法汇总--亲测可用 在安全性要求比较高的系统中都会涉及到数据的加密.解密..NET为我们封装了常用的加密算法,例如:MD5,DES,RSA等.有可逆加密,也有 ...
- Redis4.0新特性 -Lazy Free
Redis4.0新增了非常实用的lazy free特性,从根本上解决Big Key(主要指定元素较多集合类型Key)删除的风险.笔者在redis运维中也遇过几次Big Key删除带来可用性和性能故障. ...
- 从Myeclipse到IntelliJ IDEA-——让你摆脱鼠标,全键盘操作
注:本文是对原文章(https://blog.csdn.net/luoweifu/article/details/13985835)做的补充 快捷键对比 Myeclipse IDEA 说明 Ctrl+ ...
- python-Web-django-商城-购物车商品加减
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CentOS7安装openjdk8+环境变量配置
CentOS7安装openjdk8+环境变量配置 步骤: 使用yum命令安装openjdk yum clean yum install -y java-1.8.0-openjdk-1.8.0.212. ...
- 【ARM-Linux开发】Linux环境下使用eclipse开发C++动态链接库程序
Linux环境下使用eclipse开发C++动态链接库程序 Linux中也有类似windows中DLL的变成方法,只不过名称不同而已.在Linux中,动态链接叫做Standard Object,生成的 ...
- C学习笔记-函数
函数的定义 返回值类型 函数名([[参数类型 参数名1],[参数类型 参数名2],···,[参数类型 参数n]]) { //执行语句 return 返回值; } 返回值类型:用于限定函数返回值的数据类 ...
- Ubuntu18.04.3主力开发机使用记录(一)
现在是2019年12月02日,在公司使用Ubuntu作为开发机器已经有一段时间了 查看主分区创建时间 安装时间8月26 当时周一,一个新的迭代刚刚开始,早上来到公司发现开不了机:Windows报错蓝屏 ...
- Servlet中获取POST请求的参数
在servlet.filter等中获取POST请求的参数 form表单形式提交post方式,可以直接从 request 的 getParameterMap 方法中获取到参数 JSON形式提交post方 ...