java IO —File类

本节目标:

    1.掌握File类的作用

    2.能够使用File类中的方法对文件进行操作

1.File类

在整个java.io包中,唯一与文件本身有关的类就是File类。使用File类可以进行创建或删除文件等操作。要想使用File类,首先要掌握File类的构造方法,该类的常用构造方法如下:

File file = new File(String pathName)  //实例化File类对象的时候,需要设置好路径

File类中的主要方法和变量如下:


2.实例操作

创建一个新文件

public class FileDemo1 {
public static void main(String[] args) throws IOException {
File file = new File("d:\\test.txt");
file.createNewFile();  //根据指定路径,创建文件
}
}

在各个操作系统中,实际上路径的分隔符是不一样的,如:

widows中使用反斜杠:“\”

linux中使用正斜杠:“/”

如果想让java程序的可移植性继续保持,最好根据所在的操作系统自动使用分隔符。

在File类中,有两个操作分隔符的常量,分别是pathSeparator和separator。

public void test(){
System.out.println(File.pathSeparator);         --->";"
System.out.println(File.separator);          --->"\"

}

因此可以采用separator自动使用分隔符。

public class FileDemo1 {
public static void main(String[] args) throws IOException {
File file = new File("d:"+File.separator+"test2.txt");
file.createNewFile();  //根据指定路径,创建文件
}

}

注意:在操作文件的时候一定注意分隔符!使用File.separator表示。

删除一个指定文件

boolean delete()  删除此抽象路径名表示的文件或目录。

public class FileDemo1 {
public static void main(String[] args) throws IOException {
File file = new File("d:"+File.separator+"test2.txt");
file.delete();//删除文件
}

}

为了使删除文件操作更加严谨,在删除前先判断文件是否存在.

boolean exists() 测试此抽象路径名表示的文件或目录是否存在。

public class FileDemo1 {
public static void main(String[] args) throws IOException {
File file = new File("d:"+File.separator+"test2.txt");
if (file.exists()) { //如果文件存在则删除
file.delete();
}else{ //不存在则创建文件
file.createNewFile();
}
}

}

创建和删除文件并不会立刻执行,可能会产生延迟,这是因为java需要通过JVM与底层进行交互,所有的操作需要经过JVM完成。

创建一个文件夹

boolean mkdir()   创建此抽象路径名指定的目录。

boolean mkdirs()  创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。

public class FileDemo1 {
public static void main(String[] args) throws IOException {
File file = new File("d:"+File.separator+"devin");
file.mkdir();//创建文件夹
}
}

列出指定目录的全部文件

以字符串数组的形式返回:public String[] list()

以File数组的形式返回:public File[] listFiles()

public class FileDemo1 {
public static void main(String[] args) throws IOException {
File file = new File("d:"+File.separator);
String[] str = file.list();
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
}

}

结果运行:

devin
test.txt
test3.txt
test4.txt

以上只是列出了名字,包括文件的名字和文件夹的名字。

public class FileDemo1 {
public static void main(String[] args) throws IOException {
File file = new File("d:"+File.separator);
File[] listFiles = file.listFiles();
for (int i = 0; i < listFiles.length; i++) {
System.out.println(listFiles[i]);
}
}

}

结果运行:

d:\devin
d:\test.txt
d:\test3.txt

d:\test4.txt

以上列出的是完整的路径。

判断一个给定的路径是不是目录

public boolean isDirectory()

public class FileDemo1 {
public static void main(String[] args) throws IOException {
File file = new File("d:"+File.separator);
if (file.isDirectory()) {
System.out.println(file.getPath()+ "是目录");
}else{
System.out.println(file.getPath() + "不是目录");
}
}

}

运行结果:

d:\是目录

遍历目录下的所有文件

public class FileDemo1 {
public static void main(String[] args) throws IOException {
File myFile = new File("f:" + File.separator);
print(myFile);
}
public static void print(File file) {// 递归调用
if (file != null) { // 判断是否为空
if (file.isDirectory()) { // 是否为目录
File[] listFiles = file.listFiles();
if (listFiles != null) {
for (int i = 0; i < listFiles.length; i++) {
print(listFiles[i]);
}
}
} else {
System.out.println(file);
}
}
}
}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值