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. 1.ini读写操作

    一.使用 TIniFile implementationvar  ini:tinifile;  path:string;       {ini文件路径}  section,key:string;{表示 ...

  2. Java日志体系(八)最佳实践

    java常用日志框架关系 Log4j 2与Log4j 1发生了很大的变化,Log4j 2不兼容Log4j 1. Logback必须配合Slf4j使用.由于Logback和Slf4j是同一个作者,其兼容 ...

  3. React Native小知识点记录

    1>查看 RN 的所有历史版本: npm view react-native versions -json 2>查看 RN 的当前版本: npm view react-native ver ...

  4. 增强for循环的简单总结

    整体来说:增强型for循环使用起来比较方便,代码也比较简单,如果只是操作集合中元素的而不使用索引的话,建议用此方法.对于普通for循环,如果需要使用索引进行其它操作的话,建议用这个. 详细来说:1,区 ...

  5. Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 -- iframe专题 <下>

    学习目的: 掌握iframe矿建的定位,因为前端的iframe框架页面元素信息,大多时候都会带有动态ID,无法重复定位. 场景: 1. iframe切换 查看iframe 切换iframe 多个ifr ...

  6. ASP.NET Core 入门笔记5,ASP.NET Core MVC控制器入门

    摘抄自https://www.cnblogs.com/ken-io/p/aspnet-core-tutorial-mvc-controller-action.html 一.前言 1.本教程主要内容 A ...

  7. android#使用Intent传递对象

    参考自<第一行代码>——郭霖 Intent的用法相信你已经比较熟悉了,我们可以借助它来启动活动.发送广播.启动服务等.在进行上述操作的时候,我们还可以在Intent中添加一些附加数据,以达 ...

  8. deepin终端下载速度超慢解决方案

    最近发现在deepin终端下载软件包时速度简直是慢到不可饶恕,最快速度不上20KB/s,哭了,这要下载个几百KB的还能忍,稍微下载个百内MB的包就得等1-2小时,这咋行! 在网上查了几篇博客后,终于找 ...

  9. createjs小游戏开发总结

    createjs缩放,html组件input的缩放,transform位置,缩放,字体的大小. 移动端横屏和竖屏幕旋转屏幕自适应,input弹出软键盘的原理和位置偏移,focus,blur弹出软键盘. ...

  10. Java利用模板生成pdf并导出

    1.准备工作 (1)Adobe Acrobat pro软件:用来制作导出模板 (2)itext的jar包 2.开始制作pdf模板 (1)先用word做出模板界面 (2)文件另存为pdf格式文件 (3) ...