/**
*
* 练习: 得到文件夹的属性
* 得到文件名                    getName()
* 得到文件大小(字节) length()
* 是否可读                       canRead()
* 是否可写                       canWrite()
* 是否隐藏                       isHidden()
*
*/

利用下面的代码新建文件/夹并给定指定路径和位置

File file = new File ("/demo.txt");

在用file打点调用get属性的方法

"文件名:"+file.getName()
"大小:"+file.length()
"可读:"+file.canRead()
"可写:"+file.canWrite()
"隐藏:"+file.isHidden())

将以以下方式进行输出显示

System.out.println("文件名:"+file.getName()+"\n"
		  +"大小:"+file.length()+"\n"
		  +"可读:"+file.canRead()+"\n"
		  +"可写:"+file.canWrite()+"\n"
		  +"隐藏:"+file.isHidden());
	}

输出结果:

 *附加练习:如果需要频繁的(成千上万)获取这些信息进行操作并且有时候只需要获得其中的可读或可写属性而不是全部获取,是不是每次都要这么写代码一个的获取这些数据呢?怎么办?

思路:我们可以利用重写File类的toString方法,在重写后的toString方法中我们可以有选择性的进行定义规则,然后调用toString方法即可

代码如下:

//自造类 继承File超类收拥有超类中的所有属性和方法
class filee extends File{
	//重写File类中的抽象方法(无视)
	public filee(File parent, String child) {
		super(parent, child);
	}
	//重写toString方法,在方法中返回自己设定的规则
	//以后只需实例化filee对象后用对象名打点调这个toString方法
	//即可输出对应的属性
	public String toString() {
		return "文件名:"+this.getName()+"\n"
			+"大小:"+this.length()+"\n"
			+"可读:"+this.canRead()+"\n"
			+"可写:"+this.canWrite()+"\n"
			+"隐藏:"+this.isHidden()
				;
	}
}

所有代码如下:

package day1.practice;
 
import java.io.File;
 
/**
 *
 * 练习: 得到文件夹的属性 得到文件名 getName() 得到文件大小(字节) length() 是否可读 canRead() 是否可写
 * canWrite() 是否隐藏 isHidden()
 *
 */
public class Demo2 {
 
	public static void main(String[] args) {
		// 获取文件的各种属性
		getInfo(new File("./demo.txt"));
 
		File file = new File("/demo.txt");
 
		// 获取文件的各种属性,利用自造File类中的toString方法
		// 可自定义获取哪些属性
		getInfoToString(new filee(null, "./demo.txt"));
	}
 
	// 获取文件的各种属性
	public static void getInfo(File file) {
 
		System.out.println("文件名:" + file.getName() + "\n" + "大小:" + file.length() + "\n" + "可读:" + file.canRead() + "\n"
				+ "可写:" + file.canWrite() + "\n" + "隐藏:" + file.isHidden());
	}
 
	// 获取文件的各种属性 利用重写toString方法
	public static void getInfoToString(filee file) {
		System.out.println(file.toString());
	}
}
 
//自造类 继承File超类收拥有超类中的所有属性和方法
class filee extends File {
	// 重写File类中的抽象方法(无视)
	public filee(File parent, String child) {
		super(parent, child);
	}
 
	// 重写toString方法,在方法中返回自己设定的规则
	// 以后只需实例化filee对象后用对象名打点调这个toString方法
	// 即可输出对应的属性
	public String toString() {
		return "文件名:" + this.getName() + "\n" + "大小:" + this.length() + "\n" + "可读:" + this.canRead() + "\n" + "可写:"
				+ this.canWrite() + "\n" + "隐藏:" + this.isHidden();
	}
}