您的位置:首页 > 编程语言 > Java开发

Java知识总结-File类

2014-02-27 23:58 411 查看
说明:File类方法较多,需要多联系加以熟悉

File类:将文件或目录封装成对象,并进行操作。

一,File类对象的创建格式:

import java.io.*;
public class Test {
public static void main(String[] args) throws IOException{
//File(String pathname)
File f1=new File("d:\\a\\s\\d");
File f2=new File("d:\\22\\111.txt");
//File(String parent, String child)
File f3=new File("D:\\123","222.txt");
//File(File parent, String child
File f4=new File(f1,"333.txt");
System.out.println("f1:"+f1);
System.out.println("f2:"+f2);
System.out.println("f3:"+f3);
System.out.println("f4:"+f4);
}
}


运行结果:

f1:d:\a\s\d
f2:d:\22\111.txt
f3:D:\123\222.txt
f4:d:\a\s\d\333.txt

二,File类常见方法:

创建:

----createNewFIle():

根据指定名称创建文件,若文件已存在则不创建且返回false,若创建成功则返回true。

----mkdir():

创建文件夹,只能创建一级文件夹。

----mkdirs():

创建文件夹,可以创建多级文件夹。

import java.io.*;
public class Test {
public static void main(String[] args) throws IOException{
File f1=new File("123.txt");
File f2=new File("D:\\abc");
File f3=new File("D:\\aa\\bb\\cc\\dd");
//创建文件
System.out.println(f1.createNewFile());
//创建一级文件夹
System.out.println(f2.mkdir());
//创建多级文件夹
System.out.println(f3.mkdirs());
}
}

运行结果:

true
true
true


删除:

----delete():

删除文件或目录:若成功删除返回true,若文件和目录不存在或删除失败则返回false。

import java.io.*;
public class Test {
public static void main(String[] args) throws IOException{
File f1=new File("123.txt");
File f2=new File("D:\\abc");
File f3=new File("D:\\aa\\bb\\cc\\dd");
//创建文件
f1.createNewFile();
//创建一级文件夹
f2.mkdir();
//创建多级文件夹
f3.mkdirs();
//删除文件
System.out.println(f1.delete());
//删除文件夹
System.out.println(f2.delete());
System.out.println(f3.delete());
}
}

运行结果:

true
true
true


判断:

----exists():

判断文件或目录是否存在,存在则返回true。

----isFile():

判断FIle对象是否为文件。

----isDirectory();

判断是否为目录。

----isHidden():

判断是否为隐藏文件。

----isAbsolute():

 判断是否是绝对路径。

import java.io.*;
public class Test {
public static void main(String[] args) throws IOException{
File f=new File("d:\\123.txt");
f.createNewFile();
//文件或目录是否存在
System.out.println(f.exists());
//对象是否为文件
System.out.println(f.isFile());
//对象是否为文件夹
System.out.println(f.isDirectory());
//对象是否为隐藏文件
System.out.println(f.isHidden());
//对象是否为觉得路径
System.out.println(f.isAbsolute());
}
}


获取:

----getName();

获取文件名或目录的最后一级文件夹名。如果文件为空,返回空字符串。

----getPath();

获取创建File对象时闯入构造函数的目录和文件的字符串形式。

----getAbsolutePath();

获取绝对路径名称.

----getParent()

获取父目录,如果创建这个File对象时没有指定父目录则返回null。

import java.io.*;
public class Test {
public static void main(String[] args) throws IOException{
File f=new File("abc\\123.txt");
//获取文件名或文件夹的最后一级
System.out.println("getName()"+f.getName());
//获取创建对象时路径名称
System.out.println("getPath"+f.getPath());
//获取觉得路径
System.out.println("getAbsolutePath"+f.getAbsolutePath());
//获取父目录
System.out.println("getParent"+f.getParent());
}
}

运行结果:

123.txt
abc\123.txt
C:\Users\huaer\workspace\javaenhance\abc\123.txt
abc


----length();

获取文件大小

----listRoots();

 返回个硬盘分区名

----list():

 获取该文件夹下文件名和文件夹名,以字符串数组形式返回。

注意:调用该方法时,FIle对象必须封装一个目录,且该目录要存在,如果封装的是文件则返回一个空数组。

import java.io.*;
public class Test {
public static void main(String[] args) throws IOException{
File f=new File("c:\\");
//获取该文件下的所有文件名和文件夹名
String[] str=f.list();
for(String s:str){
System.out.println(s);
}
}
}


----listFiles();

获取指定文件夹下的文件名和文件夹名,以File数组形式返回。

三,File应用:文件过滤

示例:过滤指定文件夹所有.java文件

import java.io.*;
public class Test {
public static void main(String[] args) throws IOException{
File f=new File("D:\\360\\123\\321");
String[] str=f.list(new FilenameFilter(){
public boolean accept(File dir,String name){
return name.endsWith(".java");
}
});
for(String s:str){
System.out.println(s);
}
}
}

运行结果:

ArrayDemo.java
Car.java
CarTest.java
CollectionDemo.java
CollectionsDemo.java
Demo1.java
FanXing.java
HashSetDemo.java
IODemo.java
ListDemo.java
ListTest.java
Lock.java
MapDemo.java
MapTest.java
StrBuffer.java

四,File应用:遍历目录

示例:遍历指定目录下文件和文件夹,包括所有子目录中的内容。

import java.io.*;
public class Test {
public static void main(String[] args) throws IOException{
File f=new File("D:\\360\\123");
show(f);
}
public static void show(File dir){
//打印目录名
System.out.println(dir);
File[] files=dir.listFiles();
for(File f:files){
//如果是目录,就进行遍历
if(f.isDirectory())
//递归调用
show(f);
else
//打印文件名
System.out.println("\t"+f);
}

}
}


五,File应用:删除文件夹

java删除文件夹时,文件夹需要为空。

import java.io.*;
public class Test {
public static void main(String[] args) throws IOException{
File f=new File("D:\\360\\123\\333");
deleteDemo(f);
}
public static void deleteDemo(File dir){
File[] files=dir.listFiles();
for(File f:files){
//如果是目录,就进行遍历
if(f.isDirectory())
//递归调用
deleteDemo(f);
else
//删除文件
System.out.println(f.delete());
}
//删除文件夹中文件后删除文件夹
System.out.println(dir.delete());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: