Java中的File类

File类在整个java.io包中是一个独立的类,此类的主要功能是完成与平台无关文件操作,例如:创建文件、删除文件等。在File类中提供了以下的构造方法:public File(String pathname)在使用的时候需要依靠其制定一个文件的具体路径。

1、创建文件

例如,现在要在D盘上创建一个demo.txt的文件。创建的方法:

package org.mole.io;
import java.io.File;
import java.io.IOException;
public class CreateFileDemo1 {
public static void main(String[] args) {
File file = new File("d:\\demo.txt");//找到File类的实例
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}


}

程序本身只是作为一个文件的创建出现。而如果要使用具体的内容的输出,则必须依靠IO操作流。

2、删除文件

如果想要删除文件则使用:public boolean delete()

package org.mole.io;


import java.io.File;


public class DeleteFileDemo {
public static void main(String[] args) {
File file = new File("d:\\demo.txt");//找到File类的实例
file.delete();//删除文件
}


}

以上的两个操作确实完成了文件的创建及删除,可是代码却同样的存在问题。在各个操作系统中,文件的分隔符是不一样的:windows:\linux:/。Java本身属于跨平台的语言,那么应该可以适应各个不同的平台要求,那么为了解决可以自动适应不同系统的分隔符要求,所以在File类中提供了以下几个常量:

路径分隔符:public static final String pathSeparator,“,”

分隔符:public static final String separator,“/”或“\”

所以,对于实际的开发来讲,必须使用这样的常量进行声明。正经的java常量字母应该全部大写,但是此处并没有大写。这就是java历史发展的原因。所以,以后的程序豆浆采用File.separator进行分隔。

3、判断文件是否存在

提供以下的方法,public boolean exists()

package org.mole.io;


import java.io.File;


public class ExistsFileDemo {
public static void main(String[] args){
File file = new File("d:"+File.separator+"demo.txt");//找到File类的实例
if(file.exists()){
System.out.println("文件存在");
}else{
System.out.println("文件不存在");
}
}
}

那么,此时就可以利用此种特点完成以下的一个要求:要求编写一个程序,此程序的主要功能如下,如果文件存在,则删除,如果文件不存在,则创建一个新的文件。

package org.mole.io;


import java.io.File;
import java.io.IOException;


public class CreateDeleteFileDemo2 {
public static void main(String[] args) {
File file = new File("d:"+File.separator+"demo.txt");//找到File类的实例
if(file.exists()){
file.delete();
}else{
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}


}


}

4、判断路径是文件还是文件夹

在程序中可以使用如下的方法进行判断:

判断是否是文件夹:public boolean isDirectory()

判断是否是文件:public boolean isFile()

package org.mole.io;


import java.io.File;


public class IsDemo {
public static void main(String[] args) {
File file1 = new File("d:"+File.separator+"demo.txt");
File file2 = new File("d:"+File.separator+"docs");
System.out.println(file1.isFile());//判断是否是文件
System.out.println(file2.isDirectory());//判断是否是目录


}


}

5、列出目录中的内容

在File类中提供了以下的两个方法进行目录的列表操作:

public String[] list()

public File[] listFiles()

list()的用法如下:

package org.mole.io;


import java.io.File;


public class ListDemo {
public static void main(String[] args) {
File file = new File("d:"+File.separator+"vm");//找到File类的实例
String path[] = file.list();//列出全部的内容
for(int i=0;i<path.length;i++){
System.out.println(path[i]);
}


}


}

此处列出来的只是一个目录下的文件或文件夹名称而已,执行结果如下:


listFiles()可以列出目录下每个文件的路径,代码和结果如下:

package org.mole.io;


import java.io.File;


public class ListDemo2 {
public static void main(String[] args) {
File file = new File("d:"+File.separator+"vm");//找到File类的实例
File path[] = file.listFiles();//列出全部的子文件或文件夹
for(int i=0;i<path.length;i++){
System.out.println(path[i]);
}


}


}


这两个都可以列出目录下的内容,更加清楚的列出目录下内容代码如下:

package org.mole.io;


import java.io.File;


public class ListDemo3 {
public static void main(String[] args) {
File file = new File("d:"+File.separator+"vm");//找到File类的实例
File path[] = file.listFiles();//列出全部的子文件或文件夹
for(int i=0;i<path.length;i++){
System.out.println(path[i].getParent()+"-->");
System.out.println(path[i].getPath());
}


}


}

执行结果如下:


6、创建目录

用mkdir()方法

package org.mole.io;


import java.io.File;


public class MkdirDemo {
public static void main(String[] args) {
File file = new File("d:"+File.separator+"demo.txt");
file.mkdir();


}


}

以上代码创建了一个文件名为demo.txt的文件夹,也可以在一个文件夹下创建文件:

package org.mole.io;


import java.io.File;
import java.io.IOException;


public class MkdirDemo2 {
public static void main(String[] args) {
File file = new File("d:"+File.separator+"demo"+File.separator+"test.txt");
file.getParentFile().mkdir();//创建d:\demo文件夹
try {
file.createNewFile();//创建文件
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}


}



本文内容参考了魔乐科技的教学视频

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值