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 ...
- 05 - Django应用第二步
知识点 1) 数据库的配置 涉及到INSTALL_APPS的配置等 初次创建数据的命令 2) 模型的编写 模型的创建方式, 写一个类继承自models.Model 模型的数据类型 外键 自动创建ID列 ...
- [原]NYOJ-大数阶乘-28
大学生程序代写 //http://acm.nyist.net/JudgeOnline/problem.php?pid=28 /*题目28题目信息运行结果本题排行讨论区大数阶乘 时间限制:3000 ms ...
- netsh wlan start hostednetwork
常用的无线网命令: 一.开启系统承载网络模块和新建无线网络命令: netsh wlan set hostednetwork mode=allow ssid=wifi key=12345678说明:ss ...
- iOS+PHP图片上传
这篇博客用于实现iOS客户端通过POST请求,将图片上传到服务器上.服务器端语言采用PHP,服务器环境使用MAMP搭建.先使用浏览器测试图片是否可以上传,浏览器测试成功之后再测试iOS客户端是否可以成 ...
- boost::io_service解读
boost::io_service解读 asio是boost提供的一个c++异步编程模型库,其核心类io_service,在多线程编程里面提供了任务队列和任务分发功能,在socket.io编程里主要作 ...
- 对spring、AOP、IOP的理解 (转)
spring 的优点?1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦2.可以使用容易提供的众多服务,如事务管理,消息服务等3.容器提供单例模式支持4.容器提供了AOP技术,利用它很容易实现如权 ...
- C++模板特化编程
在C++中,模板特化是除了类之外的一种封装变化的方法.模板特化可以通过编译器来对不同的模板参数生成不同的代码. 模板特化通常以模板结构体作为载体.常用技法包括:类型定义.静态成员常量定义和静态成员函数 ...
- 前端之css样式(选择器)
一.css概述 CSS是Cascading Style Sheets的简称,中文称为层叠样式表,对html标签的渲染和布局 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. 例如 二.c ...
- 8.ireport 取消自动分页,detail不分页
转自:http://www.blogjava.net/vjame/archive/2013/10/12/404908.html 报表文件属性页面 lgnore pagination 勾选上,就可以取消 ...