Java语言的File类总结

每个File类对象表示一个磁盘文件或文件夹,其对象属性中包含了文件或文件夹的相关信息,如文件名,长度,所含文件个数等等,调用它的方法可以完成对文件或文件夹的管理操作,如创建,删除等

1:创建File类的对象

构造方法 功能说明
public File(String path) 用path参数创建File对象所对应的磁盘文件名或文件夹名及其路径
public File(String path,String name) 以path为路径,以name 为文件或文件夹名创建File对象
public File(File dir,String name) 用一个已经存在代表某磁盘文件夹的File对象dir作为文件夹,以name作为文件或文件夹名来创建File对象

注意:由于操作系统的不同,windows用“\”作为文件夹分割符,linux用“/”作为文件夹分割符。为了使java程序能在不同平台运行,可以使用File类的一个静态变量 File.separator。该属性中保存了当前系统规定的文件夹分隔符。

如:G:\\test.txt;    ----->     "G:"+File.separator+"test.txt";

2:获取文件或文件夹属性

File类常用方法
方法 功能说明
public boolean exists() 判断文件或文件夹是否存在
public boolean isFile() 判断对象是否代表有效文件
public boolean isDirectory() 判断对象是否代表有效文件夹
public String getName() 返回文件或文件夹名
public String getPath() 返回文件或文件夹的路径
public long length() 返回文件的字节数
public boolean canRead() 判断文件是否可读
public boolean canWrite() 判断文件是否可写
public String[] list() 将文件夹中所有文件名保存在字符串数组中返回
public boolean equals() 比较两个文件或文件夹是否相等

3:文件或文件夹的操作

File类中的一些操作方法
方法 功能说明
public Boolean renameTo(File newFile) 将文件重命名成newFile对应的文件名
public boolean delete() 将当期文件删除,若删除成功,则返回true,否则返回false
public boolean mkdir() 创建当期文件夹的子文件夹。若创建成功返回true,否则返回false

顺便说一下:mkdir(), 与mkdirs()的区别:

mkdirs()可以建立多级文件夹, mkdir()只会建立一级的文件夹。如下:

new File("/tmp/one/two/three").mkdirs();     ===》 执行后, 会建立tmp/one/two/three四级目录

new File("/tmp/one/two/three").mkdir();      ===》 则不会建立任何目录, 因为找不到/tmp/one/two目录, 结果返回false

下面用一个例子来反顾知识点:

@Test
	public void testFileDemo(){
		String str = new String();
		try{
			InputStreamReader isr = new InputStreamReader(System.in);
			BufferedReader inp = new BufferedReader(isr);
			String sdir = "d:\\cgj";
			String sfile;
			File fdir = new File(sdir);
			if(fdir.exists() && fdir.isDirectory()){
				System.out.println("文件夹:"+sdir+"已经存在");
				for (int i = 0; i < fdir.list().length; i++) {
					System.out.println((fdir.list())[i]);
				}
				File fdir2 = new File("d:\\cgj\\temp");
				if(!fdir2.exists()){
					fdir2.mkdir();  // 这步有意思,(它是没有,就创建)
				}
				System.out.println();
				System.out.println("创建新文件夹后的文件列表");
				for(int i = 0; i<fdir.list().length;i++){
					System.out.println((fdir.list())[i]);
				}
				System.out.println("请输入该文件夹中的一个文件名:");
				sfile = inp.readLine();  // 意思是从键盘输入数据
				File ffile = new File(fdir,sfile);  // 第三种File对象的创建方式
				if(ffile.isFile()){
					System.out.println("文件名:"+ffile.getName());
					System.out.println("文件所在路径:"+ffile.getPath());
					System.out.println("文件大小:"+ffile.length()+"字节");
				}
				if(inp != null)
					inp.close();
			}
		}catch(IOException e){
			e.printStackTrace();
		}
	}

 

发布了24 篇原创文章 · 获赞 32 · 访问量 6万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览