黑马程序员 File类总结
来源:互联网 发布:c语言中long long 编辑:程序博客网 时间:2024/05/15 06:18
------- android培训、java培训、期待与您交流! -----------------
1.File类概述
java.io.File类,但是不是流对象,不能读写文件
以前的流对象,构造方法中,可以传递File类型对象
File类,将路径和文件夹,进行了对象的封装,提供了很多的,操作路径和文件夹的方法
File类本身提供大量方法,操作目录和路径,但是File类需要和IO流配合到一起才能实现功能
java.io.File类,但是不是流对象,不能读写文件
以前的流对象,构造方法中,可以传递File类型对象
File类,将路径和文件夹,进行了对象的封装,提供了很多的,操作路径和文件夹的方法
File类本身提供大量方法,操作目录和路径,但是File类需要和IO流配合到一起才能实现功能
2.构造方法
2.1 File(File partent,File child)
根据父路径partent和子路径child组合成新的路径,创建一个新的File对象注意:父路径是当前路径的上一级路径,是唯一的,如果是盘符,它就没有父路径子路径是当前路径的下一级路径,可以有多个
2.2 File(String pathname)
根据给定的字符串型pathname转换成抽象路径,创建一个新的File对象
3.常用方法
3.1 boolean createNewFile()创建一个新文件,如果成功则返回true
3.2 boolean mkdir() 创建目录,创建成功则返回true,只创建一级文件夹
boolean mkdirs()创建目录,创建成功则返回true,可以创建多级文件夹
日后使用创建文件夹的方法的时候,推荐使用mkdirs()可以是单级目录,也可以是多级目录
4. File判断方法
4.1 boolean exists() 测试File构造方法中封装的路径是否存在 存在则返回true
4.2 boolean isAbsolute() 判断File构造方法中封装的路径是否是绝对路径
注意:据对路径带有盘符
4.3 boolean isDirctory() 判断File构造方法中封装的路径是不是文件夹,如果是则返回true
4.4 boolean isFile() 判断File构造方法中封装的路径是不是文件,如果是则返回true
5.File类删除方法
5.1 boolean delete() 删除File构造方法中封装的路径,不走回收站,如果删除成功返回true
如果删除的路径是一个文件夹,这个文件夹不是空的就不能删除。
5.2 void deleteOnExit()删除,File构造方法中封装的路径,延迟删除
只有在JVM要退出时,才进行尝试删除
6.File类获取方法
6.1 static File[] listRoots() 返回File类型数组,获取当前系统跟 所有的磁盘全部获取6.2 File getAbsoluteFile() 返回File构造方法中,封装的路径的绝对路径
6.3 String getAbsolutePath() 和 getAbsoluteFile()效果一致
区别返回值:
getAbsoluteFile()返回File类型,返回值可以调用File类方法
getAbsolutePath()返回String类型,返回值可以调用String类方法
6.4 String getName() 返回名字,结果是String
获取的是包装的路径的最后那个部分的名字,最后是文件夹,获取文件夹名,如果是文件,获取文件名
但是路径有没有不管
6.5 String getParent() 获取File构造方法中,封装的路径的父路径,返回String,用的是String类方法
6.6 File getParentFile() 获取File构造方法中,封装的路径的父路径,返回File,用的是File类方法
6.7 String getPath() 将File构造方法中封装的路径,转成String类对象
7.2 boolean renameTo(File dest) 修改File构造方法中封装的路径名,重命名
要修改的文件,和修改后的文件,不在同一个路径,方法出现剪切效果
返回一个String类型数组,只有文件名,文件名获取以后使用String方法
8.2 File[] listFiles() 获取File构造方法中,封装的路径下的全部内容
返回一个File类型数组,全路径,文件名获取后使用File方法,首选方法
8.3 File[] listFile(过滤器),过滤不要的文件
FileFilter 文件过滤器,接口
自己定义一个文件过滤器,实现FileFilter接口
6.7 String getPath() 将File构造方法中封装的路径,转成String类对象
7. File类中的其他常用方法
7.1 long lastModified() 获取File构造方法 包装文件最后修改时间的毫秒值7.2 boolean renameTo(File dest) 修改File构造方法中封装的路径名,重命名
要修改的文件,和修改后的文件,不在同一个路径,方法出现剪切效果
8. File类获取方式list开头,非静态的
8.1 String[] list() 获取File构造方法中,封装的路径下的全部内容返回一个String类型数组,只有文件名,文件名获取以后使用String方法
8.2 File[] listFiles() 获取File构造方法中,封装的路径下的全部内容
返回一个File类型数组,全路径,文件名获取后使用File方法,首选方法
8.3 File[] listFile(过滤器),过滤不要的文件
FileFilter 文件过滤器,接口
自己定义一个文件过滤器,实现FileFilter接口
9.递归
只是一种编程技巧而已,不是Java特有
递归:就是方法的自身调用,自己调用自己实例:
9.1计算1--100的和
9.2计算10!
9.3兔子问题
//递归计算1--100的和
public class RecurrenceDemo {
public static void main(String[] args) {
// 计算1到100的和
System. out .println(method(100));
System. out .println(diGui(100));
/*
* 递归,解决兔子问题,斐波那契数列
*/
System. out .println(diGui1(12));
}
// 兔子问题
private static int diGui1( int month) {
if (month == 1)
return 1;
if (month == 2)
return 1;
return diGui1(month - 1) + diGui1(month - 2);
}
// 递归计算
private static int diGui( int num) {
if (num == 1)
return 1;
return num + diGui(num - 1);
}
// 普通的for循环计算
private static int method( int num) {
int sum = 0;
for (int i = 0; i <= num; i++) {
sum += i;
}
return sum;
}
}
11. 复制文件夹
单级文件夹
将C:\\demo 数据源
复制到D盘 数据目的
File 字节流对象
循环,方法
实现步骤:
A. 获取到数据源的文件夹名字
B. 在数据目的的盘符中,创建一个同名字的文件夹
C. 遍历数据源,获取数据源中的所有文件
D. 获取数据源文件名,在数据目的中创建一个同名的文件
E. IO流读写文件
单级文件夹
将C:\\demo 数据源
复制到D盘 数据目的
File 字节流对象
循环,方法
实现步骤:
A. 获取到数据源的文件夹名字
B. 在数据目的的盘符中,创建一个同名字的文件夹
C. 遍历数据源,获取数据源中的所有文件
D. 获取数据源文件名,在数据目的中创建一个同名的文件
E. IO流读写文件
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 将"d:\\demo"复制到"e:\\"
* 单级目录复制
*/
public class CopyDemo {
public static void main(String[] args) {
// 传入原文件夹的路径,和目标盘符
getAllFiles( new File( "d:\\demo" ), new File("e:\\" ));
}
private static void getAllFiles(File source, File target) {
// 1.定义方法,在目标盘中完成同名文件夹的创建
// 怎么获得同名文件夹的名字?
// 2.source.getName()方法获得,与目标盘符组合成目标文件夹的路径
File newTarget = new File(target, source.getName());
System. out .println(newTarget.getAbsolutePath());
newTarget.mkdirs(); // 创建目录
// 3.遍历原文件夹目录,获得所有文件的文件名
File[] sourceFiles = source.listFiles();
for (File f : sourceFiles) {
// 获取数据源文件的文件名
// String fileName = f.getName();
// 有了数据源的文件全路径,需要的应该是数据目的全路径"e:\\demo"
// 4.数据目的的绝对路径中"e:\\demo"是有了,就差文件名了
//判断f是文件夹还是文件,如果是文件夹,就继续调用本方法继续找子文件,如果是文件直接复制文件
if (f.isDirectory()) {
getAllFiles(f,newTarget);
} else {
File targetFile = new File(newTarget, f.getName());
// 5.有了文件名之后,用IO流赋值文件
CopyFile(f, targetFile);
}
}
}
// 定义CopyFile()方法copy文件
private static void CopyFile(File source, File target) {
// 创建输入输出流对象
FileInputStream fis = null ;
FileOutputStream fos = null ;
try {
fis = new FileInputStream(source);
fos = new FileOutputStream(target);
int len = 0;
byte [] bytes = new byte[1024];
while ((len = fis.read(bytes)) != -1) {
fos.write(bytes, 0, len);
fos.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fos != null ) {
fos.close();
}
} catch (IOException e) {
fos = null ;
} finally {
try {
if (fis != null ) {
fis.close();
}
} catch (IOException e) {
fis = null ;
}
}
}
}
}
--------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- 详细请查看:www.itheima.com
0 0
- 黑马程序员 File类总结
- (黑马程序员)File类学习总结
- 黑马程序员:Java基础总结----类 File
- 黑马程序员:File类
- 黑马程序员-File类
- 黑马程序员---File类
- 黑马程序员--File类
- 黑马程序员:File类
- 黑马程序员--File类
- 黑马程序员--File类
- 黑马程序员__关于学习File类的总结
- 黑马程序员——File类方法的简单总结
- 黑马程序员——Java File类总结
- 黑马程序员--IO流File类总结--java
- 黑马程序员--(File知识总结)
- 黑马程序员—File类
- 黑马程序员—File类
- 黑马程序员-Java File类
- 第4次作业
- Android ViewPager 轮播图
- 第5次作业
- 模拟spring的注入和读取配置文件(ApplicationContext.xml)
- 第6次作业
- 黑马程序员 File类总结
- Java:throw与throws
- UC面试java游戏程序员经历
- 动之以情晓之以理②
- 第7次作业
- Entity framework sqlite
- 6/16 CF debugging
- 转帖-pomelo 学习零碎记录 5 部署Lordofpomelo
- 第9次作业