File

java.io.File类 :
1. File类是在java.io包下的
2. File用来表示一个文件(.mp3 .mp4 .avi .txt .doc) 还可以代表一个目录
3. File可以用来创建文件和目录 还可以获取目录或文件的大小等操作。 不能对文件内容进行添加(对于文件内容的添加需要使用IO流)。
 4. File往往作为流的节点。往往我们会将File类的对象传入到IO流的构造器中。

/*
* File类的构造器
* new File(String pathName);
* new File(String path,String name);
* 绝对路径 : 包含盘符在内的文件路径的全名称。
* 相对路径: 相对于当前项目下的路径
*/

@Test
public void test(){
	
	new File("F:\\0508\\code\\demo\\hello.txt"); //用来表示一个文件
	new File("F:\\0508/code/demo/hello.txt"); //用来表示一个文件
	new File("Hello.txt"); //表示一个文件
	new File("F:\\0508"); //表示一个目录
	
	
    new File("F:/0508/code/demo","hello.txt"); //表示的就是 F:/0508/code/demo/hello.txt
}

/*
方法:
getName()
getPath()
getAbsoluteFile()
getAbsolutePath()
getParent()
toPath()
renameTo(File newName)
*/

@Test
public void test2(){
	File file = new File("E:\\123\\ccc"); //表示的是一个目录
	File file2 =new File("Hello.txt"); //表示的是一个文件
	
	System.out.println(file.getName());
	System.out.println(file.getPath());
	System.out.println(file.getAbsoluteFile());
	System.out.println(file.getAbsolutePath());
	System.out.println(file.getParent());
	System.out.println(file.toPath());
	
	System.out.println("------------------------------------");
	
	System.out.println(file2.getName());
	System.out.println(file2.getPath());
	System.out.println(file2.getAbsoluteFile());
	System.out.println(file2.getAbsolutePath());
	System.out.println(file2.getParent());
	System.out.println(file2.toPath());
	
	/*
	    ccc
		E:\123\ccc
		E:\123\ccc
		E:\123\ccc
		E:\123
		E:\123\ccc
		------------------------------------
		Hello.txt
		Hello.txt
		F:\0508\code\day21\Hello.txt
		F:\0508\code\day21\Hello.txt
		null
		Hello.txt
	 */
	
}

/*
 *  exists()
	canWrite()
	canRead()
	isFile()
	isDirectory()

 * 
 */
@Test
public void test3(){
	/*
	 * File也可以表示不存在的目录或者文件
	 */
	File file = new File("E:\\123\\ccc"); //表示的是一个目录
	File file3 = new File("E:\\123\\cc"); //表示的是一个目录
	File file2 =new File("Hello.txt"); //表示的是一个文件
	
	System.out.println(file3.exists());
	System.out.println(file3.canWrite());
	System.out.println(file3.canRead());
	System.out.println(file3.isFile());
	System.out.println(file3.isDirectory());
	
	/*
	 *  false
		false
		false
		false
		false
	 */
	
	System.out.println("--------------------------");
	
	
	
	System.out.println(file.exists());
	System.out.println(file.canWrite());
	System.out.println(file.canRead());
	System.out.println(file.isFile());
	System.out.println(file.isDirectory());
	
	/*
	 *  true
		true
		true
		false
		true
	 */
	
	System.out.println("----------------------------------");		
    //		file2.setReadOnly();  //设置文件只可以读
	
	System.out.println(file2.exists());
	System.out.println(file2.canWrite());
	System.out.println(file2.canRead());
	System.out.println(file2.isFile());
	System.out.println(file2.isDirectory());
	
	/*
	 *  
		true
		true
		true
		true
		false
	 */
}

/*
 *  lastModified()
	length()

 */
@Test
public void test4(){
	File file2 =new File("Hello.txt"); //表示的是一个文件
	
	System.out.println(file2.lastModified()); //文件最后修改的时间
	
	System.out.println(file2.length()); //文件的大小
}

/*
	 *  createNewFile() : 创建文件 
	 *  	注意:文件所在的目录必须存在,如果不存在则会报异常
		delete()
	 */
	@Test
	public void test5() throws Exception{
//		File file = new File("ddd.txt");
//		file.createNewFile(); //创建文件
//		file.delete();
		
//		if(file.exists()){
//			file.delete();
//		}else{
//			file.createNewFile();
//		}
	
	
	File file2 = new File("E:/aaa/ddd.txt");
	if(!(file2.exists())){
		file2.createNewFile();
	}
}

/*
 * 对目录操作
 * 
 *  mkdir()
	mkdirs()
	delete()
	list()
	listFiles()
 */
@Test
public void test6(){
	/*
	 * 当创建的目录的父目录如果不存在的情况下
	 * mkdir : 不可以创建目录
	 * mkdirs : 可以创建目录(包括父目录也会创建)
	 */
	
//		File file = new File("E:/bbb/ccc/ddd");
//		file.mkdir();
		
//		File file2 = new File("E:/bbb/ccc/fff");
//		file2.mkdirs();
	
	/*
	 * 当创建的目录的父目录如果存在的情况下
	 * mkdir
	 * mkdirs
	 * 都可以创建目录
	 */
	
//		File file = new File("E:/bbb/ccc/eee");
//		file.mkdir();
	
	File file2 = new File("E:/bbb/ccc/ggg");
	file2.mkdirs();
}

@Test
public void test7(){
//		File file = new File("E:/bbb/ccc/ggg");
//		file.delete();
		
	File file = new File("E:/bbb");
	String[] list = file.list();
	for (String string : list) {
		System.out.println(string);
	}
	
	System.out.println("------------------------------------------");
	
	File[] listFiles = file.listFiles();
	for (File file2 : listFiles) {
		System.out.println(file2);
	}
}

/*
 * renameTo(File newName)
 * File newName = new File("E:/bbb/Hello.txt")
 * 将当前文件移动到 newName中
 * 注意: newName的父目录必须存在。
 *  
 */
@Test
public void test8(){
	File file = new File("Hello.txt");
	boolean renameTo = file.renameTo(new File("E:/bbb/Hello.txt"));
	System.out.println(renameTo);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值