File类与常用IO流第一章File类
第一章:File类
一、1个重点单词:
file:文件;directory:文件夹/目录;path:路径(绝对路径:absolutePath)
二、4个静态成员变量:
1.static String pathSeparator
2.static char pathSeparatorChar
3.static String separator
4.static char separatorChar
其中,pathSeparator与pathSeparatorChar 是与系统有关的路径分隔符,在Windows系统中,是分号“;”,在Linux系统中,是冒号“:”。
separator与separatorChar 是与系统有关的默认名称分隔符,在Windows系统中,是反斜杠,在Linux系统中,在正斜杠。
public static final String pathSeparator = "" + pathSeparatorChar;
public static final String separator = "" + separatorChar;
在Windows系统中
1 System.out.println(File.pathSeparator); //;
2 System.out.println(File.pathSeparatorChar); //;
3 System.out.println(File.separator); //\
4 System.out.println(File.separatorChar); //\
三、绝对路径与相对路径
- 绝对路径:是一个完整的路径,以盘符开始
- 相对路径:是一个相对于当前项目的路径
- 路径不区分大小写
- 路径不要写死,容易出错。E:"+File.separator+"有道词典"+File.separator+"aaa.txt"
1 Windows: "E:\有道词典\aaa.txt"
2 Linux: "E:/有道词典/aaa.txt"
3 不要写死: "E:"+File.separator+"有道词典"+File.separator+"aaa.txt"
四、构造方法
- File(String pathname)
- 路径可以是以文件结尾,也可以是文件夹结尾
- 路径可以是相对路径,也可以是绝对路径
- 路径可以是存在的,也可以是不存在的
- 创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况
1 File f1 = new File("E:\\aaa\\bbb\\ccc.txt");
2 System.out.println(f1);//E:\aaa\bbb\ccc.txt
3 File f2 = new File("E:\\aaa\\bbb\\fff");
4 System.out.println(f2);//E:\aaa\bbb\fff
5 File f3 = new File("ggg\\123.txt");
6 System.out.println(f3);//ggg\123.txt
- File(String parent,String chile)
- 参数:父路径,子路径
- 好处:父路径于子路径单独书写,使用灵活
- File(File parent,String child)
- 好处:父路径是File类型,可以先处理之后再使用
- File(URI uri)
五、获取的成员方法
- public String getAbsolutePath();返回绝对路径名字字符串,无论构造方法中传递的路径是绝对路径还是相对路径
- public String getPath():返回构造方法中指定的路径
- File类重写Obejct类中的toString()方法就是调用的getPath()方法,源码如右: public String toString() {return getPath();}
- public String getName():返回由此File表示的文件或目录的名称
- public long length():返回文件长度。(构造方法指向的文件的大小,以字节为单位)。
- 对文件夹使用该方法返回的是0,文件夹没有大小概念
- 如果构造方法给出的路径不存在,返回0。
六、判断的成员方法
- public boolean exists():文件或目录是否存在
- public boolean isDirectory():是否目录
- 若文件/目录不存在,则返回false
- public boolean idFile():是否文件
- 若文件/目录不存在,则返回false
七、创建或删除的成员方法
- public boolean createNewFile():当且仅当具有该名称的文件尚不存在时,创建一个新的空文件
- 创建文件的路径和名称在构造方法中给出
- 返回值:
- true:文件不存在,创建新的空文件,返回true
- false:文件存在,不会创建文件,返回false
- 注意:
- 此方法只能创建文件,不能创建文件夹,若用此方法强行创建文件夹,实际创建的还是文件
- 创建文件的路径必须存在,否则会抛出异常:throws IOException,所以调用了该方法,就必须处理异常,要么声明,要么捕获
- public boolean mkdir():创建由此File表示的目录,只能创建单级目录
- 创建文件夹的路径和名称在构造方法中给出
- 返回值:
- true:文件夹不存在,创建文件夹,返回true
- false:
- 文件夹存在,不会创建文件夹,返回false
- 构造方法中给出的路径不存在,返回false
- public boolean mkdirs():创建由此File表示的目录,包括任何必须存在但不存在的父目录
- 创建文件夹的路径和名称在构造方法中给出
- 返回值:
- true:文件夹不存在,创建文件夹,返回true
- false:
- 文件夹存在,不会创建文件夹,返回false
- 构造方法中给出的路径不存在,返回false
- public boolean delete():删除文件或目录
- 此方法可以删除由此File表示的文件或目录
- 返回值:
- true:文件或文件夹删除成功
- false:
- 文件夹中有内容,不会删除,返回false
- 构造方法中给出的路径不存在,返回false
- 注意:此方法直接在硬盘删除文件或文件夹,不走回收站,慎用。
八、遍历目录的成员方法
- public String[] list():返回一个String数组,表示File目录中的所有子文件或目录(包括隐藏的文件或文件夹)
- public File[] listFiles():返回也给File数组,表示目录中所有的子文件或目录(包括隐藏的)
- 注意:
- 如果构造方法中给出的目录不存在,会抛出空指针异常
- 如果构造方法中给出的路径不是一个目录,也会抛出空指针异常
File类常用方法:

九、打印多级目录:
1 //递归打印多级目录
2
3 public static void main(String[] args) {
4 File f=new File("E:\\aaa");
5 method(f);
6 }
7 private static void method(File f) {
8 System.out.println(f.getAbsoluteFile());
9 File[] files = f.listFiles();
10 for (File file : files) {
11 if(file.isDirectory()){
12 method(file);
13 }else{
14 System.out.println(f);
15 }
16 }
17 }
第三章、IO流概述
第四章、IO字节流
第五章、IO字符流
第六章、使用try...catch...finally...处理流中的异常
第七章、Properties集合
第八章、缓冲流
第九章、转换流
第十章、序列化流
第十一章、打印流
File类与常用IO流第一章File类的更多相关文章
- File类与常用IO流第二章过滤器
在第一章中,有一个练习使用递归搜索文件 1 public static void main(String[] args) { 2 File f=new File("E:\\aaa" ...
- File类与常用IO流第九章——转换流
第九章.转换流 字节编码和字符集 编码:按照某种规则将字符以二进制存储到计算机中. 解码:将存储在计算机中的二进制数按照某种规则解析显示出来. 字符编码:Character Encoding ,就是一 ...
- File类与常用IO流第四章——IO字节流
一切文件在存储时,都是以二进制数字的形式保存的,都是一个一个字节.无论使用什么样的流对象,底层传输的始终是二进制数据. 字节输出流 OutputStream java.io.OutputStream ...
- File类与常用IO流第七章——Properties集合
Properties概述 java.util.Properties extends Hashtable<k,v> implements Map<k,v> Properties类 ...
- File类与常用IO流第三章IO流概述
一:以内存为基准,按照数据的流动方向,流向内存为输入(读取数据),流出内存为输出.IO流有四大顶级父类: IO流四大顶级父类 输入流 输出流 字节流 字节输入流 InputStream 字节输出流 ...
- File类与常用IO流第十章——序列化流
第十章.序列化流 序列化流和反序列化流概述 序列化:用一个字节序列表示一个对象,该字节序列包含该对象的数据.对象的类型和对象中存储的属性等等信息.字节序列写出到文件后,相当于文件中持久保存了一个对象的 ...
- File类与常用IO流第八章——缓冲流
第八章.缓冲流 缓冲流概述 缓冲流,也叫高效流,是对4个基本的FileXxx流的增强.按照数据类型分为4类: 输入缓冲流 输出缓冲流 字节缓冲流 BufferedInputStream Buffe ...
- File类与常用IO流第十一章——打印流
第十一章.打印流 概述:java.io.PrintStream extends OutputStream,为其他输出流添加了功能,使题目能够方便的打印各种数据值表示形式. 特点: 只负责数据的输出,不 ...
- File类与常用IO流第五章——IO字符流
字符流,只能操作文本文件,不能操作图片.视频等非文本文件 字符输入流 java.io.Reader 字符输入流中一些共性的成员方法 int read():读取单个字符并返回. int read(cha ...
随机推荐
- 3D点云完美匹配
3D点云完美匹配 The Perfect Match: 3D Point Cloud Matching with Smoothed Densities 地址链接: http://openaccess. ...
- 在Yolov5 Yolov4 Yolov3 TensorRT 实现Implementation
在Yolov5 Yolov4 Yolov3 TensorRT 实现Implementation news: yolov5 support 引论 该项目是nvidia官方yolo-tensorrt的封装 ...
- Json文件解析(下)
Json文件解析(下) 代码地址:https://github.com/nlohmann/json 从STL容器转换 任何序列容器(std::array,std::vector,std::dequ ...
- Android客户端网络预连接优化机制探究
一.背景 一般情况下,我们都是用一些封装好的网络框架去请求网络,对底层实现不甚关注,而大部分情况下也不需要特别关注处理.得益于因特网的协议,网络分层,我们可以只在应用层去处理业务就行.但是了解底层的一 ...
- 【VBA】判断文件是否存在
效果: 源码: Sub 判断文件是否存在() Dim strcfg As String strcfg = "D:\a.cfg" If Dir(strcfg, vbDirectory ...
- noip模拟8[星际旅行·砍树·超级树·求和]
也不能算考得好,虽然这次A了一道题,但主要是那道题太简单了,没啥成就感,而且有好多人都A掉了 除了那一道,其他的加起来一共拿了25pts,这我能咋办,无奈的去改题 整场考试的状态并不是很好啊,不知道是 ...
- 【模拟7.14】建造游乐园(play)
这题是玄学的数论 首先考虑如何枚举偶数点度的图 可以考虑取出i-1个点 那么成图的数量为2^C(i-1,2) (原因单独取出的i点能平衡已建图中的奇数点,原因是某种性质....) 然后求带联通标号的欧 ...
- git命令使用(必备系列)
git是一个分布式版本控制系统,得益于高效.协作和快速的项目代码管理特性几乎每一个软件开发团队都在深度使用.本篇是对git命令的介绍,涵盖了不低于95%的日常操作命令,对你有用话可以收藏一下哦. 一. ...
- [HTML]常用的文本标签(标题、段落、加粗、下划线等标签)
标签类型 写法 说明 标题 <h1></h1>......<h6></h6> 加粗.独占一行(块级元素) 段落 <p></p> ...
- POJ 1050 To the Max 枚举+dp
大致题意: 求最大子矩阵和 分析: 一开始想复杂了,推出了一个状态方程:d[i][j]=max(d[i][j-1]+-,d[i-1][j]+-).写着写着发现上式省略的部分记录起来很麻烦. 后来发现n ...