黑马程序员——java基础——文件File

来源:互联网 发布:iphone手机数据恢复 编辑:程序博客网 时间:2024/04/29 05:02

------<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  myFile = new File( myDir, "myfile.txt");
这些构造方法取决于访问文件的方式。例如,若在应用程序里只用一个文件,第一种创建文件的结构是最容易的。但若在同一目录里打开数个文件,则后种方法更好一些。

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();   //文件最后修改的时间(从1990年午夜至文件最后修改时刻的毫秒数)

方法代码演示:

<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 blockthrow e;}finally{try{if(buff!=null)buff.close();}catch(IOException e){throw e;}}}}</span>





0 0
原创粉丝点击