码迷,mamicode.com
首页 > 编程语言 > 详细

【JavaSE】day07_File

时间:2015-08-27 23:08:53      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

【JavaSE】day07_File


1.File

1) java.io.File

 * 该类用于描述文件系统中的一个文件或目录。

 * File可以访问文件或目录的属性信息。 File可以操作文件或目录。 File可以查看一个目录有哪些子项。

 * File不能访问文件内容!

2)String getName()

    ---获取文件名

3)long length()

   ---获取文件大小(文件占用的字节量)

4)boolean exists()

   ---判断当前File表示的文件或目录是否在硬盘中已经存在。

5)boolean lastModified()

   ---获取最后的修改时间 1970年元旦到这一刻的毫秒差。还不存在的文件的最后修改时间为0。

具体细节见代码:


package day01;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * java.io.File
 * 该类用于描述文件系统中的一个文件或目录。
 * File可以访问文件或目录的属性信息。
 * File可以操作文件或目录。
 * File可以查看一个目录有哪些子项。
 *
 * File不能访问文件内容!
 */
public class FileDemo1 {
	public static void main(String[] args) {
		/*
		 * 描述目录时应当注意两点:
		 * 1:尽量不用绝对路径,因为不同操作系统有差异。
		 * 2:目录的层级分割符不要直接写“/”或“\”,,因为
		 *    不同系统也有差异,所以使用File的常量:
		 *    File.separator就可以了。
		 */
		// "/home/soft01/myworkspace/Mycode003_SE02/demo.txt"
		File file = new File("."+File.separator+"demo.txt");//.表示当前目录,项目所在目录
		
		/*
		 * 获取文件名
		 */
		String name = file.getName();
		System.out.println("文件名:"+name);
		
		/*
		 * 获取文件大小(文件占用的字节量)
		 */
		long length = file.length();
		System.out.println("文件大小:"+length);
		
		/*
		 * 判断当前File表示的文件或目录是否在硬盘中已经存在。
		 */
		boolean exits = file.exists();
		System.out.println("已存在:"+exits);
		
		/*
		 * 获取最后的修改时间 1970年元旦到这一刻的毫秒差。
		 * 还不存在的文件的最后修改时间为0。
		 */
		long dateTime = file.lastModified();
		System.out.println(dateTime);
		Date date = new Date(dateTime);
		System.out.println(date);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年M月d日 HH:mm:ss");
		String dateStr = sdf.format(date);
		System.out.println(dateStr);
		
		//是否是隐藏文件
		boolean isHidden = file.isHidden();
		
		//是否可读
		boolean canRead = file.canRead();
		
		//是否可写
		boolean canWrite = file.canWrite();
		
		//是否可运行
		boolean canExecute = file.canExecute();
		
		//是否是文件
		boolean isFile = file.isFile();
		
		//是否是目录
		boolean isDir = file.isDirectory();
		
		System.out.println(isHidden+","+canRead+","+canWrite+","+canExecute+","+isFile+","+isDir);
		
		
		
	}

}

6)boolean createNewFile()

  ---创建新文件

代码:

package day01;

import java.io.File;
import java.io.IOException;

/**
 * 使用File创建一个新文件
 */
public class FileDemo2 {
	public static void main(String[] args) throws IOException {
		/*
		 * 在当前目录根目录下创建文件:test.txt
		 * 若直接书写文件名,默认就在当前目录下,所以“./"是可以忽略不写的。
		 */
		File file = new File("test.txt");
		if(!file.exists()){
			//创建当前文件(如果文件已存在,则不再创建)
			file.createNewFile();
			System.out.println("文件创建成功");
		}
		//file.createNewFile();
		//System.out.println("111");
		
	}

}

7)boolean delete()

   ---删除一个现有的文件

代码:


package day01;

import java.io.File;

/**
 * 删除一个现有的文件
 */
public class FileDemo3 {
	public static void main(String[] args) {
		/*
		 * 删除当前目录中的test.txt文件
		 */
		File file = new File("test.txt");
		if(file.exists()){
			boolean b1 = file.delete();
			System.out.println(b1+"删除完毕");
		}
		
	}

}

8)boolean mkdir()

   ---创建一个目录

代码:

package day01;

import java.io.File;
import java.io.IOException;

/**
 * 创建一个目录
 */
public class FileDemo4 {
	public static void main(String[] args) throws IOException {
		/*
		 * 在当前目录下创建目录demo
		 */
		File dir = new File("demo");
		if(!dir.exists()){
			dir.mkdir();
			System.out.println("创建目录成功!");
		}
		File file1 = new File(".");
		System.out.println(file1.length());
		//删除目录
		//dir.delete();
	}

}

9)boolean mkdirs()

   ---创建一个多级目录

package day01;

import java.io.File;

/**
 * 创建一个多级目录
 *
 */
public class FileDemo5 {
	public static void main(String[] args) {
		/*
		 * 在当前项目根目录下创建目录:
		 * a/b/c
		 */
		File dirs = new File("a/b/c/d/e/f");
		if(!dirs.exists()){
			dirs.mkdirs();
			System.out.println("创建完毕!");
		}
		//dirs.delete();
		
	}

}

10)递归删除多级目录

代码:


package day01;

import java.io.File;

/**
 * 删除多级目录
 * 当删除一个含有子项的目录时,直接使用delete方法是删除不成功的,
 * 需要先将该目录中的所有子项删除以后,该目录才可以成功删除。
 *
 */
public class FileDemo6 {
	public static void main(String[] args) {
		/*
		 * 删除当前目录中的a目录
		 */
		File dir = new File("a");
		deleteFile(dir);
	}
	
	public static void deleteFile1(File file){
		if(!file.exists()){
			return ;
		}
		if(file.isFile()){
			file.delete();
			return ;
		}
		File[] subs = file.listFiles();
		for(File f : subs){
			deleteFile(f);
		}
		file.delete();
		//return ;
	}
	
	public static void deleteFile(File file){
		if(file.isDirectory()){
			File[] sub = file.listFiles();
			for(File f : sub){
				deleteFile(f);
			}
		}
		file.delete();
	}

}

11)File[] listFiles()

   ---该方法获取当前目录下的所有子项,由于一个目录下包含的无非还是文件或者目录,那么都可以用一个File对象表示。所以获取一个目录里面所有子项就等于获取了若干File对象,每一个表示其中一个子项。

代码:


package day01;

import java.io.File;

/**
 * 获取一个目录下的所有子项
 *
 */
public class FileDemo7 {
	public static void main(String[] args) {
		/*
		 * 获取当前项目根目录下的所有子项
		 */
		File file = new File(".");
		
		/*
		 * File[] listFiles()
		 * 该方法获取当前目录下的所有子项,由于一个目录下
		 * 包含的无非还是文件或者目录,那么都可以用一个File
		 * 对象表示。所以获取一个目录里面所有子项就等于获取
		 * 了若干File对象,每一个表示其中一个子项。
		 */
		File[] files = file.listFiles();
		for(File f : files){
			
			if(f.isDirectory()){
				//判断当前File表示的是否为一个文件
				System.out.print("目录:");				
			}else if(f.isFile()){
				//判断当前File表示的是否为一个目录
				System.out.print("文件:");
			}
			System.out.println(f.getName());
		}
		
	
	}

}

12)FileFilter文件过滤器

代码:

package day01;

import java.io.File;
import java.io.FileFilter;

/**
 * FileFilter文件过滤器
 * 
 * File有一个重载的listFiles方法,允许我们传入一个
 * 文件过滤器,并将满足过滤器要求的子项返回。不满足则忽略。
 *
 */
public class FileDemo8 {
	public static void main(String[] args) {
		/*
		 * 获取当前目录下名字以“.”开头的文件或目录。
		 */
		
		FileFilter filter = new FileFilter(){
			/**
			 * 过滤器过滤条件:
			 * 当给定的file对象满足要求,返回true即可。
			 */
			public boolean accept(File file) {
				return file.getName().startsWith(".");
			}
		};
		
		File file = new File(".");
		/*
		 * 获取满足给定过滤器要求的所有子项。
		 */
		File[] sub = file.listFiles(filter);
		for(File f : sub){
			System.out.println(f.getName());
		}
		
	}
}




版权声明:本文为博主原创文章,未经博主允许不得转载。

【JavaSE】day07_File

标签:

原文地址:http://blog.csdn.net/u011637069/article/details/48035977

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!