JAVA学习-笔记14-文件与目录

File类的获取功能:
File file=new File("资源");
getName() 获取文件或文件夹的名称,不包含上级路径。
length() 获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。
getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。
getAbsolutePath():获取绝对路径
getPath():获取路径
lastModified():获取最后一次的修改时间,毫秒值
list():获取指定目录下的所有文件或者文件目录的名称数组
listFiles():获取指定目录下的所有文件或文件目录构成的数组


目录操作
File file=new File("目录");

创建目录 mkdir()创建一个文件夹。
案例:file.mkdir();
 
创建目录 mkdirs()创建多级文件夹。
案例:file.mkdirs();

判断这个目录是否存在 sexists()
案例:file.sexists();

判断是否是目录 isDirectory()
案例:file.isDirectory();

读取目录 list()
案例:file.list();

重命名目录 renameTo()
案例:file.renameTo("新目录");

删除目录 delete()
案例:file.delete();

复制目录 Apache Commons IO
案例:FileUtils.copyDirectory(srcDir, destDir);

// 复制文件夹
public static void copyDirectiory(String sourceDir, String targetDir)
        throws IOException {
    // 新建目标目录
    (new File(targetDir)).mkdirs();
    // 获取源文件夹当前下的文件或目录
    File[] file = (new File(sourceDir)).listFiles();
    for (int i = 0; i < file.length; i++) {
        if (file[i].isFile()) {
            // 源文件
            File sourceFile=file[i];
            // 目标文件
            File targetFile=new File(new File(targetDir).getAbsolutePath()+File.separator+file[i].getName());
            copyFile(sourceFile,targetFile);
        }
        if (file[i].isDirectory()) {
            // 准备复制的源文件夹
            String dir1=sourceDir +File.separator + file[i].getName();
            // 准备复制的目标文件夹
            String dir2=targetDir + File.separator+ file[i].getName();
            copyDirectiory(dir1, dir2);
        }
    }
}


文件操作
File file=new File("文件路径");

创建文件
案例:file.createNewFile();

判断这个文件是否存在 sexists()
案例:file.sexists();

判断是否是文件 isFile()
案例:file.isFile();

重命名文件 renameTo()
案例:file.renameTo("新文件");

删除文件 delete()
案例:file.delete();

复制文件 Apache Commons IO
案例:FileUtils.copyFile(source, dest);

// 复制文件
public static void copyFile(File sourceFile,File targetFile)
    throws IOException{
    // 新建文件输入流并对它进行缓冲

    FileInputStream input = new FileInputStream(sourceFile);
    BufferedInputStream inBuff=new BufferedInputStream(input);

    // 新建文件输出流并对它进行缓冲
    FileOutputStream output = new FileOutputStream(targetFile);
    BufferedOutputStream outBuff=new BufferedOutputStream(output);

    // 缓冲数组
    byte[] b = new byte[1024 * 5];
    int len;
    while ((len =inBuff.read(b)) != -1) {
        outBuff.write(b, 0, len);
    }
    // 刷新此缓冲的输出流
    outBuff.flush();

    //关闭流
    inBuff.close();
    outBuff.close();
    output.close();
    input.close();
}


文件权限
方法一:
Runtime.getRuntime().exec("chmod 777 file"); 
方法二:
file.setExecutable(true);//设置可执行权限 
file.setReadable(true);//设置可读权限 
file.setWritable(true);//设置可写权限 
System.out.println("is execute allow : " + file.canExecute()); 
System.out.println("is read allow : " + file.canRead()); 
System.out.println("is write allow : " + file.canWrite()); 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值