Java基础——File

File概述

  1. File类和流无关,不能通过该类完成文件的读写。
  2. File类是文件和目录的抽象表示形式。
  3. File代表的是硬盘上的目录与文件。

File常用方法

构造方法:

第一种:File f1 = new File("F:/temp");

第二种:构造方法的第一个参数指定文件夹

              File f2 = new File("F:/temp", "sub1");

第三种:构造方法的第一个参数是一个指向文件夹的File对象

              File f3 = new File(f2, "sub2");

其他方法:

import java.io.File;

public class File01 {
    public static void main(String[] args) {
        File f = new File("F:/BaiduYunDownload/小森林.冬春篇.BD1280高清日语中字.mp4");
        //判断是否为目录
        System.out.println(f.isDirectory());
        //判断是否是文件
        System.out.println(f.isFile());
        //获取文件的绝对路径
        System.out.println(f.getAbsolutePath());
        //获取文件的父路径
        System.out.println(f.getParent());
        //获取文件名
        System.out.println(f.getName());
        //获取文件长度
        System.out.println(f.length());
        //获取文件的上次修改时间
        System.out.println(f.lastModified());
        //判断文件是否为隐藏文件
        System.out.println(f.isHidden());
        
        File file = new File("F:/temp/test");
        //判断文件/目录是否存在
        if (!file.exists()){
            //如果不存在则创建
            file.mkdir();
        }
        if (file.isDirectory()){
            //列出当前目录的子文件
            File[] files = file.listFiles();
            for (File f2 : files) {
                if (f2.getAbsolutePath().endsWith(".txt")){
                    System.out.println(f2.getAbsolutePath());
                }
            }
        }
        
        //删除文件
        file.delete();
    }

}

文件/文件夹的复制

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Test05 {

	public static void main(String[] args) {
		//把java1文件夹中的内容复制到java2中
		copyDir( "d:/java1" ,  "d:/java2"); 
	}

	//文件夹的复制
	private static void copyDir(String srcFoldername, String destFoldername) {
		//遍历srcFoldername源文件夹中的内容
		File  srcDir = new File(srcFoldername);
		//显示源文件夹的内容
		File[] listFiles = srcDir.listFiles();
		for (File file : listFiles) {
			//如果file是文件, 就直接复制
			if (file.isFile()) {
				//构建目标文件名
				File destfile = new File(destFoldername, file.getName());
				copyFile( file,  destfile); 
			}else{
				//如果是文件夹, 先创建目标文件夹, 再把子文件夹的内容复制
				File destDir = new File(destFoldername, file.getName());
				destDir.mkdir(); 			//创建文件夹
				//把file子文件夹的内容复制到destDir文件夹中
				copyDir(file.getAbsolutePath(), destDir.getAbsolutePath()); 		//递归调用
			}
		}
		
	}

	//文件复制
	private static void copyFile(File srcfile, File destfile) {
		try(
				FileInputStream fis = new FileInputStream(srcfile);
				FileOutputStream fos = new FileOutputStream(destfile);
				) {
			byte [] bytes = new byte[1024];
			int len = fis.read(bytes);
			while( len != -1 ){
				fos.write(bytes, 0, len);
				len = fis.read(bytes);
			}
			
		} catch (Exception e) {
			// TODO: handle exception
		}
	}

}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值