转:http://www.cnblogs.com/lich/archive/2011/12/10/2283445.html
在整个IO包了,唯一表示与文件本身有关的类就是File类。使用File类可以进行1创建或删除文件等常用操作。要想使用File类。则首先要观察File类的构造方法,此类的常用构造方法如下所示:
public File(String pathname) 实例化File类的时候,必须设置好路径
No. |
方法或常量 |
类型 |
描述 |
1 |
public static final String pathSeparator |
常量 |
表示路径的分隔符(windows是“;”) |
2 |
public static final String separator |
常量 |
表示路径的分隔符(windows是“\”) |
3 |
public File(String pathname) |
构造 |
创建File类对象,传入完整路径 |
4 |
public boolean createNewFile()throws IOException |
普通 |
创建新文件 |
5 |
public boolean delete() |
普通 |
删除文件 |
6 |
public boolean exists() |
普通 |
判断文件是否存在 |
7 |
public boolean isDirectory() |
普通 |
判断给定的路径是否在一个目录 |
8 |
public long length() |
普通 |
返回文件的大小 |
9 |
public String[] list() |
普通 |
列出指定目录的全部内容,只是名称 |
10 |
public File[] listFiles() |
普通 |
列出指定目录的全部内容,会有路径 |
11 |
Public Boolean mkdir() |
普通 |
创建一个目录 |
12 |
Public Boolean renameTo(File dest) |
普通 |
为已有的文件重命名 |
实例操作一:创建一个新文件
在D盘创建一个test.txt文件
import java.io.File;
import java.io.IOException;
public class Test1 {
public static void main(String[] args) {
File f=new File("d:"+File.separator+"test.txt");//为增加可移植性,建议使用File.separator
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
实例操作二:删除一个指定文件
删除刚刚创建的test.txt文件
import java.io.File;
public class Test2 {
public static void main(String[] args) {
File f=new File("d:"+File.separator+"test.txt");
if(f.exists()){//判断文件存不存在,如不存在就不用删除了
f.delete();
}
}
}
实例操作三:综合创建,删除文件的操作
给定一个路径,如果此文件存在,则删除,如果不存在,则创建
import java.io.File;
import java.io.IOException;
public class Test3 {
public static void main(String[] args) {
File f=new File("d:"+File.separator+"test.txt");
if(f.exists()){
f.delete();
}else{
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
实例操作四:创建一个文件夹
使用mkdir()方法创建一个文件夹
mkdir()创建此抽象路径名称指定的目录(及只能创建一级的目录,且需要存在父目录)
mkdirs()创建此抽象路径指定的目录,包括所有必须但不存在的父目录。(及可以创建多级目录,无论是否存在父目录)
import java.io.File;
public class Test4 {
public static void main(String[] args) {
File f=new File("d:"+File.separator+"test");
f.mkdir();//创建文件夹
}
}
实例操作五:列出指定目录的全部文件
如果现在给出了一个目录,则可以直接列出目录中的内容。但是列出的方法在File类中存在两个:
- 以字符串数组的形式返回:public String[] list()
- 以File数组的形式返回:public File[] listFiles()
操作一:使用list()列出全部内容
import java.io.File;
public class Test5 {
public static void main(String[] args) {
File f=new File("d:"+File.separator);
String[] str=f.list();
for(String s:str){
System.out.println(s);
}
}
}
以上列出了全部的名字,包括文件夹得名字和文件的名字。
操作二:使用listFiles()列出
import java.io.File;
public class Test6 {
public static void main(String[] args) {
File f=new File("d:"+File.separator);
File[] files=f.listFiles();
for(File file:files){
System.out.println(file);
}
}
}
以上列出了完全路径。
实例操作六:判断一个给定的路径是否目录
给定路径,判断是否是目录
import java.io.File;
public class Test7 {
public static void main(String[] args) {
File f=new File("d:"+File.separator);
if(f.isDirectory()){
System.out.println(f.getPath()+"是目录");
}else{
System.out.println(f.getPath()+"不是目录");
}
}
}
实例操作七:列出指定目录的全部内容
如果给定了一个目录,则要求把此目录中的全部文件都列出来,包括子文件夹下的文件
import java.io.File;
public class Test8 {
public static void main(String[] args) {
File f = new File("d:" + File.separator);
print(f);
}
public static void print(File f) {
if (f != null) {
if (f.isDirectory()) {
File[] files = f.listFiles();
if (files != null) {
for (File file : files) {
print(file);
}
}
} else {
System.out.println(f);
}
}
}
}
总结:
- File类是在java.io包中唯一与文件本身有关的
- 可以使用File类创建、删除等常见的文件操作
- 在使用File类指定路径的时候一定要注意操作系统间的差异,尽量使用separator进行分割