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

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





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值