File类、递归
File类、递归
1.1File类概述
java.io.File表示文件和目录路径名的抽象类。可以对文件和文件夹进行创建删除、获取、判断、遍历等功能。
1.2路径\文件分割符,相对路径绝度路径
1.2.1路径\文件分割符
* 在编程的过程中,最好不要写死
* windows: 文件分隔符\(编程中要用转义字符"\\") 路径分隔符;
* linux: 文件分隔符/ 路径分隔符:
public static void main(String[] args) { //源码中:public static final String separator = "" + separatorChar;
//文件分隔符
String separator = File.separator;
System.out.println("separator = " + separator); //源码中:public static final String pathSeparator = "" + pathSeparatorChar;
//路径分隔符
String pathSeparator = File.pathSeparator;
System.out.println("pathSeparator = " + pathSeparator); //执行结果:
//separator = \
//pathSeparator = ; }
1.2.1绝对路径和相对路径
* 绝度路径:从盘符开始的路径,是完成的路径。
*
* 相对路径:化简的路径,以当前项目根目录作为参考,开发中经常使用
* D:\JavaSE\demo02File.txt D:\JavaSE\项目根目录 demo02File.txt相对路径
*
* windows下:文件和目录路径是不区分大小写!!!
/**
* 路径知识点
*/
private static void show01() {
File file = new File("demo02File.txt");
System.out.println(file.getAbsoluteFile()); File file02 = new File("D:\\demo02File.txt");
System.out.println(file02.getAbsoluteFile()); //结果:
// D:\JavaSE\demo02File.txt
//D:\demo02File.txt
}
1.3File类的构造方法
* java.io.File类是文件和目录路径的抽象表示,可以对文件和目录路径进行
* 获取、判断、创建删除、遍历等操作
*
* File对象表示硬盘上真是存在的一个文件或者目录路径名!!!
* 该目录下是否存在文件或者文件夹,不影响File对象的创建!!!
*
* 构造方法:
* 构造方法一:通过文件或目录路径名字符串创建File对象
* public File(String pathname);
* String pathname:字符串的路径名称
* 路径可以是以文件结尾/文件夹结尾,相对路径/绝对路径,存在/不存在
*
* 创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况!!!
*
* 构造方法二:通过父路径名 和 子路径名 创建File对象
* public File(String parent,String child);
*
* 构造方法三:通过抽象父路径和子路径名创建创建File对象
* public File(File parent, String child);
/**
* 构造方法
*/
private static void show02() {
//构造方法一:通过文件或目录路径名字符串创建File对象
File file = new File("demo03File.txt");
System.out.println(file); //构造方法二:通过父路径名 和 子路径名 创建File对象
File file02 = new File("D:\\b","demo03File02.txt");
System.out.println(file02); //D:\\bbb是不存在的文件夹,但是不影响File对象的创建。
File file03 = new File("D:\\bbb","demo03File02.txt");
System.out.println(file03); //构造方法三:通过抽象父路径和子路径名创建创建File对象
File parentPath = new File("D:\\");
File file04 = new File(parentPath, "demo04File02.txt2");
System.out.println(file04);
}
1.4File类的获取功能
* File类的获取功能
*
* public String getAbsolutePath();
*
* public String getPath();
* File类重写了toString(),源码如下:
* public String toString() {
* return getPath();
* }
*
* public String getName();
*
* public long length();
* 获取文件的字节长度,文件夹是没有长度的,返回的0!!
public static void main(String[] args) {
File file = new File("D:\\JavaSE\\demo04File.txt"); //获取文件或目录路径名的绝对路径
File absoluteFile = file.getAbsoluteFile();
System.out.println("absoluteFile = " + absoluteFile); //获取构造方法中参数对应的字符串
String path = file.getPath();
System.out.println("path = " + path);
System.out.println("file = " + file); //获取路径结尾的文件名或者文件夹
String name = file.getName();
System.out.println("name = " + name); //获取文件的字节长度,文件夹是没有长度的,返回的0!!!
long length = file.length();
System.out.println("length = " + length); // result:
// absoluteFile = D:\JavaSE\demo04File.txt
// path = D:\JavaSE\demo04File.txt
// file = D:\JavaSE\demo04File.txt File类重写了toString方法,里面调用了getPath()!!!
// name = demo04File.txt
// length = 12 utf-8中一个汉字三个字节!!!
}
1.5File类的判断功能
* File类的判断功能:
*
* public boolean isExists(); File对象表示的文件或者文件夹是否存在
* public boolean isFile(); File对象是文件吗
* public boolean isDirectory(); File对象是文件夹吗
*
* windows中只有文件和文件夹,isFile和sDirectory互斥!!!
* 前提是先判断file是否存在,才有必要在判断是文件还是文件夹!!!
File file = new File("demo04File.txt");
//windows中只有文件和文件夹,isFile和sDirectory互斥
//前提是先判断file是否存在,才有必要在判断是文件还是文件夹
if (file.exists()){
System.out.println(file.getName()+"(file or not):"+file.isFile());
System.out.println(file.getName()+"(directory or not):"+file.isDirectory());
} File file02 = new File("D:\\JavaSE");
if (file02.exists()){
System.out.println(file02.getName()+"(file or not):"+file02.isFile());
System.out.println(file02.getName()+"(directory or not):"+file02.isDirectory());
}
1.6File类的创建删除功能
* File对象的创建和删除功能:
* public boolean createNewFile();
* 只能创建文件,并且当且仅当文件不存在的时候,创建一个新的文件,返回true,否则返回false
* 需要自己处理异常,file对象表示的目录路径不存在时,抛出异常!!!java.io.IOException
*
* public boolean mkdir();
* 创建单个文件夹,成功返回true,失败返回false(文件夹存在的时候,或者路径不存在)
*
* public boolean mkdirs();
* 创建多级目录,成功返回true,失败返回false(文件夹存在时)
/**
* 删除
*/
private static void show03() {
File file = new File("D:\\Hello.txt");
System.out.println(file.delete()); //true 删除成功 File file1 = new File("D:\\love");
System.out.println(file1.delete()); //删除失败,只有文件夹是空的,才能删除成功
//构造方法的路径不存在,也会返回false
} /**
* 创建文件夹
* 文件夹存在时候,不会再次创建返回false
* 对于
* mkdir:参数路径不存在,创建会失败,返回false
*
* 其他情况,都能创建文件夹成功,返回true
*/
private static void show02() {
File file = new File("D:\\Hello");
//创建单个文件夹
System.out.println(file.mkdir()); File file1 = new File("D:\\love\\tomorrow");
//创建多个文件夹
System.out.println(file1.mkdirs()); //mkdir,mkdirs只能创建文件夹,并且mkirs也可以创建单个文件夹
File file2 = new File("D:\\Hello.txt");
System.out.println(file2.mkdirs());
} /**
* 文件的创建
* @throws IOException
*/
private static void show01() throws IOException { File file = new File("demo05File.txt");
boolean newFile = file.createNewFile(); //第一次运行,没有文件,创建后返回true.第二次运行有文件,不创建,返回false
System.out.println("newFile create ok ? " + newFile); File directoryNoNoNo = new File("iamDirectoryNoNoNo");
if(!directoryNoNoNo.exists()){
directoryNoNoNo.createNewFile();
}
System.out.println("我仍然是一个文件哦"+directoryNoNoNo.getName()); // File file = new File("D:\\tt\\demo05File.txt"); //路径不存在,抛出java.io.IOException
// boolean newFile = file.createNewFile(); //编译时异常,需要自己处理
}
1.7文件夹的遍历
* File类的遍历目录(文件夹)功能
* public String[] list();
* public File[] listFiles();
*
* 返回目录路径下的所有子文件和文件夹,
* 第一个方法返回的是子文件和文件夹的字符串,封装在String[]数组中
* 第二个方法返回的是子文件和文件夹的File对象,封装在File[]数组中
*
* 如果构造方法中的目录路径不存在,或者是一个文件,那么出现空指针异常
public static void main(String[] args) {
// D:\JavaSE\ 08FileAndRecursion
//File file = new File("D:\\JavaSE\\notExists"); //java.lang.NullPointerException
File file = new File("D:\\JavaSE\\"); //打印项目目录内容
String[] list = file.list(); for (String str :
list) {
System.out.println(str);
} System.out.println("------------------------"); File[] files = file.listFiles();
for (File dirFile: files ) {
System.out.println(dirFile.getName());
} }
File类、递归的更多相关文章
- day23<File类递归练习>
File类递归练习(统计该文件夹大小) File类递归练习(删除该文件夹) File类递归练习(拷贝) File类递归练习(按层级打印) 递归练习(斐波那契数列) 递归练习(1000的阶乘所有零和尾部 ...
- 黑马程序员-File类+递归的简单应用
Java File类 Java.io.File Java文件类以抽象的方式代表文件名和目录路径名.该类主要用于文件和目录的创建.文件的查找和文件的删除等. File对象代表磁盘中实际存在的文件和目 ...
- File类&递归
File类1.什么是file类Java中处理操作系统文件的类.2.file思想创建一个File对象,代表了操作系统的具体的一个文件(文件,文件夹)然后通过这个File对象就可以操作该文件:删除该文件, ...
- IO流(File类--递归--过滤器--IO字节流--IO字符流--Properties集合--缓冲流--转换流--序列化流--打印流)
一.File类 1.1概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 1.1.1相对路径与绝对路径 相对路径从盘符开始的路径,这是一个完整 ...
- 使用File类递归列出E盘下全部文件
import java.io.File;public class FileListTest { public void tree(File file){ if(file.listFiles()!=nu ...
- Java——使用File类递归遍历指定路劲下的所有文件
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- Java中如何利用File类递归的遍历指定目录中的所有文件和文件夹
package cuiyuee; import java.io.File; import java.util.ArrayList; import java.util.List; public clas ...
- File类 递归 获取目录下所有文件文件夹
package com.xiwi; import java.io.*; import java.util.*; class file{ public static void main(String a ...
- 01 语言基础+高级:1-8 File类与IO流_day08【 File类、递归】
day08[File类.递归] 主要内容 File类 递归 教学目标 能够说出File对象的创建方式 能够说出File类获取名称的方法名称 能够说出File类获取绝对路径的方法名称 能够说出File类 ...
- 异常、Throwable、finally、File类(十九)
1.异常的概述和分类 * A:异常的概述 * 异常就是Java程序在运行过程中出现的错误.* B:异常的分类 * 通过API查看Throwable * Error * 服务器宕机,数据库崩溃等 * E ...
随机推荐
- BEC listen and translation exercise 31
听力练习: All societies have ways of encouraging and enforcing what they view as appropriate behaviour w ...
- es6的foreach循环遍历
forEach forEach是Array新方法中最基本的一个,就是遍历,循环.例如下面这个例子: 结果: 这段代码相当于: for (var k = 0, length = array.length ...
- HDUj2612(两个起点找到最近的目的地)
Find a way Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 问题4:对dict、list、tuple中的元素排序
一)对字典中元素排序 方法一:利用sorted的key参数进行排序 from random import randint date = {k:randint(0, 20) for k in ran ...
- MyEclipse 手动安装Velocity 编辑器
最近项目有使用Velocity 模板引擎,从而会用到*.VM页面!Myeclipse打开VM页面字体一片漆黑,哪有JSP那样看起来舒服(个人感觉)!为了解决这一问题就要安装Velocity编辑器,安装 ...
- Unreal引擎术语表
转自:http://www.cnblogs.com/hmxp8/archive/2012/02/10/2345274.html Unreal引擎术语表 转载自UDN: Actor - 一个可以放置在 ...
- 解析CmdLine参数
UBOOL ParseParam( const TCHAR* Stream, const TCHAR* Param, UBOOL bAllowQuoted ) { const TCHAR* Start ...
- WPF 界面提示加载出错
当WPF界面代码中包含多个 VisualStateManager.VisualStateGroups 时会导致界面无法正常显示,把这些代码注释掉就可以展示出界面.
- 使用python+requests对接口进行测试
import unittestimport requestsimport json class Login(unittest.TestCase): def setUp(self): self.base ...
- spring 4.0 注解数据验证2
在spring 4.0 注解数据验证1中有基本的数据验证方法.还是那个POJO: package com.suyin.pojo; import java.lang.reflect.Field; imp ...