java.io.File
1、File构造方法
File (File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。 |
File (String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。 |
File (String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。 |
File (URI uri) 通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例 |
2、File常量
static String |
pathSeparator 与系统有关的路径分隔符,为了方便,它被表示为一个字符串。 |
||||
static char |
pathSeparatorChar 与系统有关的路径分隔符。 |
||||
static String |
separator 与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。 |
||||
static char |
separatorChar 与系统有关的默认名称分隔符。 |
3、File常用方法
1) 创建一个新文件
public boolean createNewFile()throws IOException
当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import java.io.File;
2 import java.io.IOException;
3 public class CreateNewFile{
4 public static void main(String[] args){
5 File f = new File("f:\\bchxsx.java");// 实例化File类的对象
6 try{
7 f.createNewFile(); //根据给定的路径创建文件
8 }catch(IOException e){
9 e.printStackTrace();
10 }
11 }
12 }
用File常量创建文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import java.io.File;
2 import java.io.IOException;
3 public class CreateNewFile1{
4 public static void main(String[] args){
5 // 实例化File类的对象
6 File f = new File("f:"+File.separator+"bchxsx.java");
7 try{
8 f.createNewFile();
9 }catch(IOException e){
10 e.printStackTrace();
11 }
12 }
13 }
2)删除一个指定文件
public boolean delete()
删除此抽象路径名表示的文件或目录。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import java.io.File;
2 import java.io.IOException;
3 public class DeleteFile{
4 public static void main(String[] args){
5 // 实例化File类的对象
6 File f = new File("f:"+File.separator+"bchxsx.java");
7 f.delete(); //删除文件
8 }
9 }
3)判断文件是否存在
public boolean exists()
测试此抽象路径名表示的文件或目录是否存在。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import java.io.File;
2 import java.io.IOException;
3 public class DeleteFile{
4 public static void main(String[] args){
5 // 实例化File类的对象
6 File f = new File("f:"+File.separator+"bchxsx.java");
7 if(f.exists()) //判断文件是否存在
8 f.delete(); //删除文件
9 }
10 }
4)创建一个文件夹
public boolean mkdir()
创建此抽象路径名指定的目录(文件夹)。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import java.io.File;
2 import java.io.IOException;
3 public class MkdirFile{
4 public static void main(String[] args){
5 // 实例化File类的对象
6 File f = new File("f:"+File.separator+"bchxsx.java");
7 f.mkdir(); //创建文件夹
8 }
9 }
5)判断一个指定的路径是否是目录
public boolean isDirectory()
测试此抽象路径名表示的文件是否是一个目录。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import java.io.File;
2 import java.io.IOException;
3 public class IsDirectoryFile{
4 public static void main(String[] args){
5 // 实例化File类的对象
6 File f = new File("f:"+File.separator+"bchxsx");
7 if(f.isDirectory())
8 System.out.println("路径是目录");//如果是文件夹(Midir)
9 else
10 System.out.println("路径不是目录"); //不是文件夹
11 }
12 }
6) 列出指定目录的全部文件
a、以字符串的形式返回:public String[] list()
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import java.io.File;
2 import java.io.IOException;
3 public class List{
4 public static void main(String[] args){
5 File f = new File("f:"+File.separator+"编程小神仙"+File.separator);
6 String list[] = f.list;
7 for(int i=0;i<list.length;i++)
8 System.out.println(list[i]);
9 }
10 }
b、以File数组的形式返回public File[] listFiles()
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import java.io.File;
2 import java.io.IOException;
3 public class ListFiles{
4 public static void main(String[] args){
5 File f = new File("f:"+File.separator+"编程小神仙");
6 String lf[] = f. listFiles;
7 for(int i=0;i<lf.length;i++)
8 System.out.println(lf[i]);
9 }
10 }
读取一个文件名称,如果是目录,显示该目录下的所以文件名称;如果是文件,显示文件的内容。
(两者的综合)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import java.io.File;
2 import java.io.FileInputStream;
3 import java.io.IOException;
4 import java.io.FileNotFoundException;
5 import java.io.BufferedInputStream;
6 public class FileWork{
7 public static void main(String[] args){
8 //File f = new File("d:"+File.separator+"FileWork.java");
9 File f = new File("d:"+File.separator+"Java_work");
10 if(f.isDirectory()){ //判断是否是文件的一个目录(文件夹)
11 System.out.println("路径是目录!");
12 String str[] = f.list();
13 for(int i=0;i<str.length;i++){
14 System.out.println(str[i]);
15 }
16 }else if(f.isFile()){ //判断是否是标准文件
17 int b = 0;
18 FileInputStream fis =null;
19 BufferedInputStream bis= null;
20 try{
21 fis = new FileInputStream(f);
22 bis = new BufferedInputStream(fis);
23 while((b=bis.read())!=-1){
24 System.out.print((char)b);
25 }
26 }catch(FileNotFoundException e){
27 e.printStackTrace();
28 }
29 catch(IOException e){
30 e.printStackTrace();
31 }finally{
32 try{
33 if(bis!=null){
34 bis.close();
35 }
36 }catch(IOException e){
37 e.printStackTrace();
38 }
39 }
40 }
41 }
42 }
运用递归的方法输出给定文件目录下的所有文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 //列出指定目录下的全部内容
2 import java.io.File;
3 import java.io.IOException;
4 public class AllListFile{
5 public static void aLFile(File file){//递归方法
6 if(file != null){ //判断当前对象是否为空
7 if(file.isDirectory()){ //判断当前对象是否目录
8 File f[] = file.listFiles();//列出当前目录下的全部的文件
9 if(f != null){ //判断此时目录是否列出
10 for(int i=0;i<f.length;i++)
11 aLFile(f[i]); //递归
12 }
13 }else{
14 System.out.println(file); //输出路径
15 }
16 }
17 }
18 public static void main(String[] args){
19 File alfile = new File("f:"+File.separator);//给定的文件路径
20 aLFile(alfile);
21 }