Java File类应用源码实例讲解



本文的内容主要是Java File类应用源码实例讲解。在JavaFile类来表示一个文件或者一个文件夹!

下面的file类代码表示一个文件:

public class FileShiLi {

public static void main(String[] args){

File f1 = new File(“e:\\file”);

if(f.isDirectory()){
System.out.println(f1.getPath());//获取文件的路径
}
}
}

程序实例运行结果是:

File类实例的isDirectory()方法判断文件是文件或者是文件夹。getPath()方法获取文件的路径!!!

下面是file代码实例以及相关的注释:

/**
*
*          File.speparator的作用是判断在不同的系统中斜杠的方向
*
*windows中斜杠的方向是向右斜的\\
* Linux  中斜杠的方向是向左斜的//
*
*
*         File中createNewFile方法穿件文件:仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
*          检查文件是否存在,若不存在则创建该文件,这是单个操作,对于其他所有可能影响该文件的文件系统活动来说,该操作是不可分的。
*
*            注:此方法不应该 用于文件锁定,因为所得协议可能无法可靠地工作。应该使用 FileLock 机制替代。
*
*
*/

import java.io.File;

public class Demo01 {
public static void main(String[] args) throws Exception{

File f;

f = new File(“e:” + File.separator + “file” + File.separator + “io.txt”);
System.out.println(f.createNewFile());
}

}
===================================
运行结果是:

大家注意,如果你的直接复制这些代码的话,可能会出现以下异常

系统找不到指定的文件,就是在e盘下新建一个file文件夹就可以啦!!!

下面代码详细的介绍了File类中的createNewFile()方法:

/**
*
*         File中createNewFile方法:
*          当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
*          检查文件是否存在,若不存在则创建该文件,这是单个操作,对于其他所有可能影响该文件的文件系统活动来说,该操作是不可分的。
*
*      注:此方法不应该 用于文件锁定,因为所得协议可能无法可靠地工作。应该使用 FileLock 机制替代。
*  返回:是布尔型
*
*/

import java.io.File;

public class Demo02 {
public static void main(String[] args) throws Exception{
File f = new File(“f:\\demo.txt”);
System.out.println(f.createNewFile());
}

}

运行结果如下:

介绍一下File类中delete()方法,代码如下:

/**
*
*             要操作一个文件,必须要找到这个文件
*             在Java中,只有File类能表示一个文件,所有用File表示一个文件
*             File的属性就是文件的路径,虚拟机会根据File类的参数找到指定的文件
*             找到问及那后可以用File类的方法进行操作!
*
*             delete()方法可以删除一个文件或者一个整个文件夹(整个目录),返回结果是布尔类型!!
*
* */

import java.io.File;

public class Demo11 {

public static void main(String[] args) {

File f = new File(“f:\\demo.txt”);

f.delete();
if(boo){
System.out.println(“成功删除文件”);
}
}
}

程序运行的结果:


以下代码是介绍查看一个文件的目录,以及判断这个文件是否是文件夹,代码如下:

/**
*
*         File的一个方法File.getPath()
*                     是将此抽象路径名转换为一个路径名字符串。
*
*         File的exists方法
*                     是测试此抽象路径名表示的文件或目录是否存在。
*
*
*         File的getParent()方法
*                     是返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null
*
* */

import java.io.File;

public class Demo21 {

public static void main(String[] args) {

File f = new File(“f:” + File.separator + “demo.txt”);
System.out.println(f.getPath());
System.out.println(f.getParent());
if(f.exists()){
f.delete();
}
else{
try{
System.out.println(f.createNewFile());
}catch(Exception e){}
}

}

}
运行结果:

一个判断目录的方法源码实例:

/**
*
*         File的一个方法File.getPath()
*                     是将此抽象路径名转换为一个路径名字符串。
*
*         File的isDirectory()的方法
*                     是测试此抽象路径名表示的文件是否是一个目录。
*         当且仅当此抽象路径名表示的文件存在且 是一个目录时,返回 true;否则返回 false。
*
*
* */

import java.io.File;

public class Demo51 {

public static void main(String[] args){
File f = new File(“f:” + File.separator + “aa”);
System.out.println(f.getPath());
System.out.println(f.isDirectory());
}

}

运行结果:

注意下一个代码:
/**
*
*             File的list()方法可以:
*             返回一个字符串数组,
*             这些字符串指定此抽象路径名表示的目录中的文件和目录。
*
* */

import java.io.File;

public class Demo61 {

public static void main(String[] args) {

File f = new File(“f:\\book”);

//使用list列出
//列出的只是一个名称
String[] str = f.list();
for(int i=0;i<str.length;i++){
System.out.println(str[i]);
}

}

}
这个程序的运行结果是你目录下的文件:

因为你想玩HK,或者你想给别人整个恶作剧,你必须要扫描下他的电脑,以下方法就实现了怎样去扫描一个电脑里的所有文件(我的代码选择的是扫描C盘下的所有文件,如果你想扫描其他盘,只要把文件改一下就OK啦)

import java.io.File;

public class Demo81 {

public static void main(String[] args) {

String str = “C:\\”;
File f = new File(str);
fun(f);
}

//要不断列出,因为给出的File类对象可能是一个目录
public static void fun(File f){
//判断给定的路径是否是目录,如果是目录在列出
if(f.isDirectory()){
File[] file = f.listFiles();
//再依次循环进行判断
try{
for(int i = 0;i < file.length;i++){
//继续把内容传入到fun方法之中进行验证
fun(file[i]);
}
}catch(Exception e){}
}
else{
System.out.println(f);
}
}

}