文件和文件夹的增删改查

1.背景

1、软件中为了持久存储数据和软件之间交换数据的需要,就发明文件。

2、文件可以持久的存储数据,文件可以在软件之间交换数据。

3、java程序也要操作文件:存储和交换数据

4、java.io:就是操作文件(文件内容的java API)

5、java.io.File:以文件(文件夹)为单位操作文件

2.操作API

1)创建对象

A)File 对象代表文件/文件夹

B)使用new 运算创建File对象,只是内存对象不一定在磁盘上存在

C)自动调用File的构造器

使用文件/文件夹的路径名创建对象

File file = new File("/home/soft01/demo.dat");

D)关于路径的分隔符

路径分隔符:File.separator 如果是win 使用 \ 如果是linux 使用 /

c:\windows\System32 --------- win

/home/soft01 --------- linux

       使用“/” java的API会自动的适应平台

2)File在API中常用方法

1)isFile():用于检测file对象对应的磁盘上的文件是否存在文件

2)isDirectory():用于检测file对象对应的磁盘上的文件夹是否存在文件夹

3)length():获得文件长度,返回值是long型(int的型不适合存文件,长度太小)

4)lastModified():获得文件的最后修改时间

5)createNewFile():创建文件

6)delete():删除文件,若想删除文件夹,该文件夹必须为空

7)Mkdir():创建文件夹

8)Mkdirs():创建一连串的文件夹,删除的话,反过来

9) listFiles():列出文件夹下的文件 或文件夹

10)FileFilter 类:用于抽象路径名的过滤器

11)旧的文件名.renameTo(要跟换的文件名):更改文件名

3.例子

例1:创建临时文件

@Test
public void testTempFile() throws Excetpion{
//利用当前系统时间创建文件名
//1、利用相对路径创建,在当前目录创建文件夹temp
//2、在temp文件夹中创建一个临时文件使用当前系统时间毫秒数作为文件名
//3、显示文件全路径名
File dir = new File("temp");
/** 创建文件夹 */
dir.Mkdir();
/** 获得当前系统时间值 */
String fileName = System.currentTimeMillis();
File file = new File(dir,fileName);//(文件夹,文件名)
/** 创建文件 */
file.createNewFile();
/** 获取一个文件(规范)的绝对路径 */
String path = file.getCanonicalPath();
System.out.println(path);
}

例2:查询文件列表(包含文件和文件夹)

@Test
public void testListFile(){
File dir = new File("/etc/");
//把dir文件夹的全部内容列出,作为返回值
File[] files = dir.listFiles();
//files每个元素可能是文件、文件夹
for(File file:files){
if(file.isDirector()){//判断是否文件夹
System.out.println("["+file.getName()+"]");
}else{
System.out.println(file.getName());
}
}
}

例3:文件超过10k且文件名包含p字母的文件或文件夹

@Test
public void testListFilter(){
File dir = new File("/etc/");
File[] files = dir.listFiles(new FileFilter(){
@Overried
/** accept 接受 */
/** accept(file)参数被检查的文件返回值是结果,如果返回true就表示接受*/
public boolean accept(File file){
return file.length()>10*1024 && file.getName.indexOf("p")!=-1;
}
});
for(File file:files){
System.out.pritln(file.getName());
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值