黑马程序员_File之学习笔记

 ------- android培训java培训、期待与您交流! ----------

File类:用来将文件或者文件夹封装成对象。

方便对文件与文件夹的属性信息进行操作。

File的出现弥补了文件的不足,增强了文件的操作性。

 

File的构造

//创建file对象
	File f = new File("a.txt");//将a.txt封装成一个对象。
	//可以将已有的或者未出现的文件或者文件夹封装成对象
	File f1 = new File("c:\\abc","b.txt");
	//左边是父目录,也就是将b.txt放到c:\\abc中的文件或者文件夹封装
	//成对象。
	File d = new File("c:\\abc");
	File f3 = new File(d,"c.txt");
	//这种结构与上边创建的相同
	System.out.println(f);
	//打印出这个文件的路径名。
	File f4 = new File("c:"+File.separator);
	//上述的File.separator是对应特定操作系统的
	//目录分隔符。
//1.创建。
	File f = new File("g://3.txt");
	boolean bool = f.createNewFile();
	//在指定的位置创建文件,如果该文件已经存在,则不创建。
	//返回false
	System.out.println(bool);
//创建文件夹。
File dir = new File("abc");
	dir.mkdir();//只能创建单级目录
dir.mkdirs();//可以创建多级目录。
	
//2.删除。	
	System.out.println(f.delete());
	//删除这个文件。
	File f3 = new File("g://33.txt");
	f3.deleteOnExit();
	//告诉虚拟机,在虚拟机退出的时候删掉。
	//一般用于临时文件。
	f3.createNewFile();
//3.判断。
	File f10 = new File("234.txt");
	System.out.println(f10.canExecute());
	//判断这个文件是否可执行。
	System.out.println(f10.exists());	
	//判断这个文件是否存在。十分的重要。
	System.out.println(f10.isDirectory());
	//判断是 不是文件夹
	System.out.println(f10.isFile());
	//判断是不是文件
	//对一个文件或者文件夹判断的时候,必须要
	//先判断该文件是否存在,如果不存在,则两者都是false
	System.out.println(f10.isHidden());
	//是不是隐藏文件。用java流访问不了。
	System.out.println(f10.isAbsolute());
	//是不是以绝对路径创建的文件。
//4.获取信息。
	
	File file1 = new File("234.txt");
	
	file1.createNewFile();
	System.out.println(file1.getName());
	//得到文件的名称
	System.out.println(file1.getPath());
	//得到文件的相对路径
	System.out.println(file1.getParent());
	//使用相对路径的时候,返回的是null
	//绝对路径的话,返回的是其父目录
	//如果相对路径中有上一层目录,那么该目录就是返回结果。
	System.out.println(file1.getAbsolutePath());
	//得到文件的绝对路径
	System.out.println(file1.lastModified());
	//获取这个文件最后一次被修改的文件。
	System.out.println(file1.length());
	//获取这个文件的大小。
	
	File file2 = new File("345.txt");
	System.out.println(file1.renameTo(file2));
	//将file1的文件名该文file2的文件名。
File[] file= File.listRoots();
	//返回系统的根路径
	System.out.println(Arrays.toString(file));
	//[C:\, D:\, G:\, Q:\, Z:\]
	
	File f = new File("c://");
	
	System.out.println(Arrays.toString(f.list()));
	//列出这个目录下文件和文件夹的名称。包含隐藏文件。
	//当f是一个文件时候,返回一个null,仅仅对文件夹有效
	//而且该文件夹必须存在。
	
	
	//过滤某个文件夹下一层中的文件
	String[] arr = f.list(new FilenameFilter()
	{
	    
	    public boolean accept(File dir, String name)
	    {
		//这里根据返回的true和false去判断是否去过滤这个文件
		//过滤以.txt结尾的文件
		//这里的dir就是上边创建时候指定的目录,而name就是文件的名称
		if(name.endsWith(".txt"))
		{
		    return true;
		}
		else
		{
		    return false;
		}
	
	    }
	});
	
	File f = new File("g:\\");
	File[] fileArr = f.listFiles();
	//返回当前文件一层下的所有文件及文件夹,并返回他们各自的对象
	for(File ff:fileArr)
	{
	    System.out.println(ff.getName()+"  "+ff.length());
	    //得到这个文件夹下的各个文件的名称和文件大小。
	}

//递归的列出指定文件夹下的所有文件
public static void main(String[] args) throws Exception
    {
	
	File f = new File("g://acm");
	get(f);
	
    }
    public static void get(File f)
    {
	if(f.isFile())
	{
	    System.out.println(f.getName());   
	}
	else
	{
	    System.out.println(f);
	    File[] ff = f.listFiles();
	    
	    for(int i = 0;i<ff.length;i++)
	    {
		
		get(ff[i]);
	    }
	    
	}
}



//删除一个带内容的目录
public static void main(String[] args) throws Exception
    {	
	File file  = new File("g://acm");
	
	get(file);
	
	
    }
    
    public static void get(File f)
    {
	if(f.isDirectory())
	{
	    File[] file1 = f.listFiles();
	    for(int i = 0;i<file1.length;i++)
	    {
		get(file1[i]);
	    }
	    System.out.println(f.delete());
	}
	else
	{
	   System.out.println(f.delete());   
	}
}


练习

将一个指定目录下的java文件的绝对路径,存储到一个文本文件中。

import java.io.*;
import java.util.*;
public class Test2
{
   
    private PrintWriter pw;
    
    public static void main(String[] args) throws Exception
    {
	PrintWriter pw = new PrintWriter("3.txt");
	File file = new File("G:\\Users\\User\\Workspaces");
	
	get(file,pw);
	
	pw.close();
	
    }
    
    public static void get(File file,PrintWriter pw)
    {
	if(file.isDirectory())
	{
	    File[] files = file.listFiles();
	    
	    for(int i=0;i<files.length;i++)
	    {
		get(files[i],pw);
		
	    }
	    
	}
	else
	{
	    if(file.getName().endsWith(".java"))
	    {
		
		pw.println(file.getName());
	    }
	    
	}
    }

}



C++本科毕业设计-ROS机械臂上位机源码(下载即用),个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源码(下载即用)C++本科毕业设计-ROS机械臂上位机源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值