java面试复习(2)之File类

java面试复习(1)
Java面试复习(3)之IO流
java面试复习(4)之字符流

IO(Input Output);

IO技术主要的作用是用于解决设备与设备之间的数据传输问题。
比如:硬盘中的数据读取到内存,也可以内存的数据到硬盘上,把键盘上的数据读到内存中。

数据保存到硬盘上,改数据就可以做到永久性的保存。
数据是以文件的形式保存到硬盘上的。
sun使用了一个File类描述了文件或者文件夹的。
File类可以描述一个文件或者一个文件夹。

File类的构造方法:

	File(String pathname)  指定文件或者文件夹的路径创建一个File文件。
	
	File(File parent, String child)   根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。 

	File(String parent, String child) 

	public class demo2 {

	public static void main(String[] args) {
		File file = new File("F:"+File.separator+"a.txt");
		
		File file1 = new File("F:/a.txt");
		
		File parentFile = new File("F:\\");
		
		File file2 = new File(parentFile,"a.txt");
		
		System.out.println("存在吗?"+file.exists());
		//判断该文件存不存在,存在返回true,否则返回false。
		
	}

}
	

目录分隔符:
在windows机器上的目录分隔符是\,在linux机器上的目录分隔符是/。
注意:
在windows上面/和\都可以使用作为目录分隔符。而且,如果写/的时候只需要写一个即可。

路径问题:

绝对路径:该文件在硬盘上的完整路径,绝对路径一般都是以盘符开头的。

相对路径:相对路径就是资源文件相对于当前程序所在的路径。

. 	当前路径

..	上一级路径

注意:
如果程序当前所在的路径与资源文件不是在同一个盘下面,是没法写相对路径的。

常见方法:

创建:
	1.createNewFile() 在指定的位置创建一个空文件,成功就返回true,如果已存在就不创建然后返回false。
	2.mkdir()		  在指定位置创建目录,这只会创建最后一级目录,如果上级目录不存在则抛异常。
	3.mkdirs()		  在指定位置创建目录,这会创建路径中所有不存在的目录。
	
	4.renameTo(File dest)
					  重命名文件或文件夹也可以操作非空的文件夹,文件不同时相当于文件的剪切,剪切时候不能操作非空的文件夹。
删除:
	1.delete()		  删除文件或空文件夹,如果是文件夹且不为空,则不能删除,成功返回true,失败返回false。
	
	2.deleteOnExit()  在虚拟机终止时,请求删除此抽象路径名表示的文件或目录,保证程序异常时创建的临时文件也可以被删除。	
					  (jvm退出的时候删除文件。一般用于删除临时文件。)
	
			
判断:
	1.exists()		  文件或文件夹是否存在
	
	2.isFile()        是否是一个文件,如果不存在,则始终为false
	
	3.isDirectory()	  是否是一个目录,如果不存在,则始终为false

	4.isHidden()      是否是一个隐藏的文件或者是否是隐藏的目录。

	5.isAbsolite()    测试此抽象路径名是否为绝对路径名。
获取:
	
	1.getName()		  获取文件或文件夹的名称,不包含上级路径。
	
	2.getPath()		  返回绝对路径,可以是相对路径,但是路径要指定。

	3.getAbsolutePath()获取文件的绝对路径,与文件是否存在没关系。

	4.length()		  获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。
	5.getParent()	  返回此抽象路径名父目录的路径名字符串;如果此路径名没有 指定父目录,则返回null
	6.lastModified()  获取最后一次被修改的时间。

文件夹相关:
	
	7.staic File[] listRoots() 列出所有的根目录(windows中就是所有的盘符)
	
	8.list()		  返回目录下的文件或者目录名,包含隐藏文件,对于文件这样操作会返回null。
	9.listFiles()	  返回目录下的文件或者目录对象(File类实例),包含隐藏文件。对于文件这样操作会返回null。
	10.list(FilenameFileter filter)
					  返回指定当前目录中符合过滤条件的子文件或子目录,对于文件这样操作会返回null。
	11.listFiles(FilenameFilter filter)
					  返回指定当前目录中符合过过滤条件的子文件或子目录,对于文件这样操作会返回null。

需求1:
指定一个文件夹,然后该文件夹下面所有java文件。
需求2:
指定一个文件夹,然后列出文件夹下面的所有子文件与文件夹,但是格式要如下:

文件:

	文件名1

	文件名2

	文件名3

	。。。

文件夹:

	文件夹名1

	文件夹名2

	文件夹名3

	。。。

需求一:

package nyist.net;

import java.io.File;

public class demo4 {

public static void main(String[] args) {
	
	File dir = new File("E:\\开发工具\\work_space\\Demo1\\src\\nyist\\net");
	listName(dir);
}
	public static void listName(File dir){
		
		File[] files = dir.listFiles();
		for(File fileItem:files){
			String fileName = fileItem.getName();
			if(fileName.matches(".+\\.java")&&fileItem.isFile()){
				
				System.out.println(fileName);	
			}
		}
	}
}

需求二:

package nyist.net;
	
	import java.io.File;
	
	public class demo3 {

	public static void main(String[] args) {
			
		File dir = new File("E:\\Learning materials\\JAVA\\day19");
		listDirectory(dir);
		listFile(dir);
	}
	public static void listDirectory(File dir){
		
		File[] dirs = dir.listFiles();
		System.out.println("文件夹:");
		for(File fileItems:dirs){
			if(fileItems.isDirectory()){
				
				System.out.println("\t"+fileItems.getName());
				
			}			
		}
	}

	public static void listFile(File dir){
		
		File[] dirs = dir.listFiles();
		System.out.println("文件:");
		for(File fileItems:dirs){
			if(fileItems.isFile()){
				System.out.println("\t"+fileItems.getName());
			}			
		}
	}
}


	
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值