`
shuangxi_zhu
  • 浏览: 6268 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

黑马程序员-java.io.File类学习笔记

阅读更多

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

---------------------------------java.io.File(类)------------------------------------

java.io.File(类):代表磁盘上的一个文件或目录:  此类的一个对象,可以获取文件的大小、绝对路径、是否可读、是否可写.....

构造方法:

       public File(String pathname):使用一个String封装的目录构造一个File对象

       public File(String parent,String child):使用父级目录和子目录构造一个File        

       public File(File parent,String child):使用File表示的父目录和String的子目录构造一个File

绝对路径:带盘符的全路径的文件名;

相对路径:指在当前项目运行的目录下;

public class Demo {
	public static void main(String[] args) {
		File file = new File("C:\\test\\test.txt");// 使用绝对路径构造

		File file2 = new File("test.txt");// 使用相对路径构造

		File file3 = new File("C:\\test", "test.txt");// 此对象跟file表示的路径相同;

		File file4 = new File("C:\\test");
		File file5 = new File(file4, "test.txt");
	}
}

 File类的创建功能:

       public boolean createNewFile():创建文件

       public boolean mkdir():创建单级目录;

       public boolean mkdirs():创建多级目录;

public class Demo {
	public static void main(String[] args) {
		File file = new File("demo30.txt");
		try {
			System.out.println("创建文件:" + file.createNewFile());
		} catch (IOException e) {
			e.printStackTrace();
		}

		File file2 = new File("test\\aaaa");

		// file2.createNewFile();//建立的仍然是文件
		System.out.println("创建单级目录:" + file2.mkdir());

		File file3 = new File("test2\\aaa2\\bbb2\\ccc2");
		System.out.println("创建多级目录:" + file3.mkdirs());

	}
}

 File类的删除功能:

       public boolean delete():用于删除文件,和"空目录":不走Windows回收站;

注意:如果是多级目录,或者非空目录,一定要先清理目录下的所有内容后,才能删除,可以使用递归删除;

public class Demo {
	public static void main(String[] args) {
		File file = new File("demo30.txt");
		System.out.println("删除文件:" + file.delete());
		
		File file1 = new File("test");
		System.out.println("删除目录:" + file1.delete());
	}
}

 File类的重命名功能

       public boolean renameTo(File dest):相同目录:重命名文件;不同目录:剪切,并重命名; 

public class Demo {
	public static void main(String[] args) {
		File file = new File("C:\\test\\test.txt");
		
	//	System.out.println("重命名文件:" + file.renameTo(new File("C:\\test\\myFile.txt")));
		System.out.println("重命名文件:" + file.renameTo(new File("myFile.txt")));
	}
}

 File类的判断功能:

       public boolean isDirectory():判断是否是目录

       public boolean isFile():判断是否是文件

       public boolean exists():文件或目录是否存在

       public boolean canRead():是否可读;

       public boolean canWrite():是否可写

       public boolean isHidden():是否隐藏;

public class Demo {
	public static void main(String[] args) {
		File file = new File("Myfile.txt");// 对于文件名,这里和磁盘上的文件名不区分大小写;
		System.out.println("是否是一个目录:" + file.isDirectory());
		System.out.println("是否是一个文件:" + file.isFile());
		System.out.println("文件或目录是否存在:" + file.exists());
		System.out.println("是否可读:" + file.canRead());
		System.out.println("是否可写:" + file.canWrite());
		System.out.println("是否隐藏:" + file.isHidden());
	}
}

 File类的基本获取功能

       public String getAbsolutePath():获取绝对路径;

       public String getPath():获取File封装的路径;

       public String getName():获取文件/目录的名称

       public long length():获取文件/目录的大小;单位:字节

       public long lastModified():获取文件/目录的最后修改时间;单位:毫秒

public class Demo {
	public static void main(String[] args) {
		File file = new File("C:\\20150822");
		String[] fileArray = file.list();
		for(String s : fileArray){
			System.out.println(s);
		}
		System.out.println("-----------------------------------------------------");
		File[] fileArray2 = file.listFiles();
		for(File f : fileArray2){
			System.out.println(f.getAbsolutePath());
		}
	}
}

File类的高级获取功能:

       public String[] list():获取当前目录下所有的文件、目录的名称;

       public File[] listFiles():获取当前目录下所有文件、目录的File数组

这两个方法区别:

  1.第一个方法简单的返回了此目录下所有文件/目录的"名称";

  2.第二个方法是将目录下的每个文件/目录又封装为一个File对象,并存到一个File[]数组中。如果我们需要在获取后,对每个文件需要进一步的操作,可以使用此方法比较方便;  

public class Demo {
	public static void main(String[] args) {
		File file = new File("myFile.txt");
		System.out.println("绝对路径:" + file.getAbsolutePath());
		System.out.println("File封装的路径:" + file.getPath());
		System.out.println("文件名:" + file.getName());
		System.out.println("文件大小:" + file.length() + " 字节");
		System.out.println("最后修改时间:" + file.lastModified() + " 毫秒");
		long time = file.lastModified();
		Date date = new Date(time);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String str = sdf.format(date);
		System.out.println("最后修改时间:" + str);
	}
}

 File类的文件过滤器:

       public String[] list(FilenameFilter filter):

       public File[] listFiles(FilenameFilter filter):

public class Demo {
	public static void main(String[] args) {
		File file = new File("C:\\20150822");
		String[] fileNameArray = file.list(new FilenameFilter() {
			@Override
			public boolean accept(File dir, String name) {
				// return false;//全不匹配
				// return true;//全部匹配
				// 写我们自己的匹配逻辑
				// System.out.println("dir = " + dir + " name = " + name);
				File file = new File(dir, name);// 我们需要确定这个File要是一个文件,所以要构造一个File对象
				if (file.isFile() && file.getName().endsWith(".java")) {
					return true;
				}

				return false;
			}
		});
		for (String s : fileNameArray) {
			System.out.println(s);
		}

	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics