------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
File类:
1:用来将文件或者文件夹封装成对象
2:方便文件或者文件夹进行操作
3:File对象可以作为参数传递给流的构造函数
4:了解File类的常用方法
5: 一个File类的对象,表示了磁盘上的文件或目录
6: File类提供了与平台无关的方法来对磁盘上 的文件或目录进行操作
7: File类直接处理文件和文件系统。•8:File类没有指定信息怎样从文件读取或向文件存储
8: File类描述了文件本身的属性
9:File对象用来获取或处理与磁盘文件相关的信息,例如权限,时间,日期和目录路径
10:File类还可以浏览子目录层次结构
11:java.io包中的File类提供了与具体平台无关的方式来描述目录和文件对象的属性功能。其中包含大量的方法可用来获取路径、目录和文件的相关信息,并对它们进行创建删除、改名等管理工作。因为不同的系统平台,对文件路径的描述不尽相同。为做到平台无关,在Java语言中,使用抽象路径等概念。Java自动进行不同系统平台的文件路径描述与抽象文件路径之间的转换。
12:File类的直接父类是Object类。
13:下面的构造方法可以用来生成File 对象:
File(String directoryPath)
File(String directoryPath, String
filename)
File(File dirObj, String filename)
这里,directoryPath是文件的路径名,filename 是文件名,dirObj 是一个指定目录的File 对象
举例说明:
File myFile = new File(" myfile. txt");
File myDir = new File(" MyDocs");
File
这些构造方法取决于访问文件的方式。例如,若在应用程序里只用一个文件,第一种创建文件的结构是最容易的。但若在同一目录里打开数个文件,则后种方法更好一些。
File类的构造函数代码演示:
<span style="font-size:18px;">package day07;
import java.io.File;
public class FileDaom {
private void mian() {
File file=new File("buff.txt");
File file1=new File("D\\abc","buff1.txt");
File d=new File("D\\adc");
File file2=new File(d,"c.txt");
System.out.println(file+""+file1+""+file2);
// TODO Auto-generated method stub
}
}</span>
File类中的方法:
1.public String getName();
2.public boolean canRead();
3.public boolean canWrite();
4.public boolean exits();
5.public ling length();
6.public String getAbsolutePath();
7.public String getParent();
8.public boolean isFile();
9.public boolean isDirectory();
10.public boolean isHidden();
11.public logn lastModified();
方法代码演示:
<span style="font-size:18px;">package day07;
import java.io.File;
public class FileDeom1 {
public static void main(String[] args) throws Exception{
//创建文件对象
File file=new File("D:\\file.txt");
//创建文件
boolean s=file.createNewFile();
//判断文件是否存在
boolean s1=file.exists();
//创建文件夹
file.mkdir();
//判断是文件还是目录注意:在判断呢是文件还是目录必须先判断文件你是否存不存在。
file.isFile();
file.isAbsolute();//判断是否是绝对路径
file.isHidden();//判断是否是隐藏文件
file.isDirectory();
File file2=file.getAbsoluteFile();//获取绝对路径
String file3=file.getPath();//获取相对路径
file.getParent();//获取绝对路径的父目录
file.length();//获取文件呢大小
//删除文件
boolean s2=file.delete();
System.out.println(s1+""+s2+""+s+""+file3+""+file2);
}
}
</span>
练习列出目录下的所有子目录的所有文件代码演示:
<span style="font-size:18px;">package day07;
import java.io.File;
public class FileDeom2 {
public static void main(String[] args) {
File file=new File("D:\\");
show(file);
}
private static void show(File file) {
System.out.println(file);
File[] files=file.listFiles();
for(int x=0;x<files.length;x++)
{
if(files[x].isDirectory())
show(files[x]);
else{
System.out.println(files[x]);
}
}
// TODO Auto-generated method stub
}
}
</span>
这里运用到了递归的编程手法。
练习要求:
将一个指定目录下java文件的绝对路径,存储到文本文件中,建立java文件目录的列表清单
分析:
1:对指定的目录进行递归
2:获取递归过程中所有的java文件的路径
3:将这些路径存储到集合中
4:将集合中的数据写入到一个文件中
代码演示如下:
<span style="font-size:18px;">import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FileDeom3 {
public static void main(String[] args) throws IOException{
File file=new File("D:\\javadaima");
List<File> list=new ArrayList<File>();
fileToList(file, list);
File file1=new File("D:\\java.txt");
writeToFile(list,file1.toString());
}
public static void fileToList(File file,List<File> list) {
File[] files=file.listFiles();
for(File file1:files){
if(file1.isDirectory())
fileToList(file1,list);
else{
if(file.getName().endsWith(".class"))
//System.out.println(file.toString());
list.add(file);
}
}
}
public static void writeToFile(List<File> list,String javalistfile) throws IOException{
BufferedWriter buff=null;
try {
buff=new BufferedWriter(new FileWriter(javalistfile));
for(File f : list){
String path=f.getAbsolutePath();
buff.write(path);
buff.newLine();
buff.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
throw e;
}
finally{
try{
if(buff!=null)
buff.close();
}catch(IOException e){
throw e;
}
}
}
}
</span>