File类文件的操作
来源:互联网 发布:java反编译工具怎么用 编辑:程序博客网 时间:2024/06/05 20:41
File类可以对我们资源管理器里边的文件夹及文件进行一些操作
下边的是创建及使用的基本规则
import java.io.File;import java.io.IOException;public class FileTest { public static void main(String[] args) { // 硬盘上的任何文件在Java中都可以使用File 类表示 // pathname表示文件的路径 File f1 = new File("D:\\JavaTest\\1.txt"); // 通过第一个\来获取第二个\的本来含义 转义字符 File f2 = new File("D:/JavaTest/2.txt"); System.out.println("f1文件是否存在:" + f1.exists()); System.out.println("f2文件是否存在:" + f2.exists()); File f3 = new File("3.txt"); System.out.println("f3文件是否存在:" + f3.exists()); // 绝对路径: 从盘符开始的路径 "D:\JavaTest\2.txt" // 相对路径: 从当前文件夹开始的路径 .\3.txt // .表示当前文件夹, 可以省略 // 相对路径是相对WorkSpace项目的文件夹为起始 // 获取对象的路径 System.out.println(f3.getAbsolutePath()); // 不同的操作系统对路径中的分隔符有不同的表示方式 // File.separator 常量能自动根据操作系统设置分隔符 // 解决跨平台路径不一致的问题,推荐写法 File f4 = new File("D:"+File.separator + "JavaTest" + File.separator + "3.txt"); // 创建或者删除的时候,一定要先试用exists()判断文件是否存在 // 只有文件存在时才进行删除操作,不存在才进行创建操作 // 创建和删除操作可能需要延迟 f1.delete(); try { f1.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 重命名 File f5 = new File("D:JavaTest/5.txt"); f1.renameTo(f5); // File 没有复制操作 // File只操作文件,不处理里面的内容 }}
File的一些方法的使用
import java.io.File;public class FileTest2 { public static void main(String[] args) { File f1 = new File("D:\\JavaTest"); if (f1.exists()) { System.out.println("文件存在!"); // 必须保证文件夹中没有任何内容才能删除 boolean flag = f1.delete(); if (flag) { System.out.println("删除成功"); }else { System.out.println("删除失败"); } }else { // 创建文件夹 必须保证路径上每一个文件夹都存在 boolean flag = f1.mkdir(); if (flag) { System.out.println("创建成功"); }else { System.out.println("创建失败"); } } // DOS命令:mkdir make directory 创建文件 // mkdir() 必须保证路径上的父文件夹都存在 System.out.println("创建是否成功:" + f1.mkdir()); // mkdirs() 创建路径上所有不存在的文件夹 System.out.println("创建是否成功:" + f1.mkdirs()); }}
import java.io.File;import java.time.LocalDateTime;import java.time.ZoneOffset;import java.util.Date;public class FileTest4 { public static void main(String[] args) { File f1 = new File("D:/JavaTest/1.txt"); System.out.println("是不是文件:" + f1.isFile()); System.out.println("是不是文件夹:" + f1.isDirectory()); System.out.println("可读:" + f1.canRead() ); System.out.println("可写:" + f1.canWrite() ); System.out.println("是否是隐藏文件" + f1.isHidden()); System.out.println("大小:" + f1.length()); // 字节 // 时间戳 : 从1970年1月1日00:00:00到指定时间经过了多少毫秒 System.out.println("最后修改时间:" + f1.lastModified()); // 时间戳转化为对应的日期 1 LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(System.currentTimeMillis()/1000, 0,ZoneOffset.ofHours(8)); System.out.println(localDateTime); // 时间戳转化为对应的日期 2 Date date = new Date(f1.lastModified()); System.out.println(date); File f2 = new File("D:/JavaTest"); // 不包含文件夹中的文件大小 System.out.println("文件夹大小:" + f2.length()); }}
使用File类的方法,可以写一个遍历文件夹的方法
使用的递归的方法.
import java.io.File;public class FileTest5 { public static void main(String[] args) { File f1 = new File("D:/"); String[] names = f1.list(); for (String name : names) { // System.out.println(name); } // 当前文件夹下所有的文件对象 File[] files = f1.listFiles(); // 遍历所有对象 for (File file : files) { // System.out.println(file.getName()); } int x = getDirectoryLength(f1); System.out.println(x); } public static int getDirectoryLength(File file){ int result = 0; // 大小 = 所有文件的大小 + 所有文件夹的大小 // 1.获取所有的文件 File[] files = file.listFiles(); // 2.遍历进行累加 for (File file2 : files) { if (file2.isFile()) { // 普通文件通过length() 获取长度进行类加 result += file2.length(); System.out.println(file2.getName()); }else if(file2.isDirectory()) { // 文件夹通过自己的方法再获取长度 result += getDirectoryLength(file2); // 方法内部调用自己的方式叫做递归 // 一定存在终止的条件,否则就会产生死循环 // 一定会有一个文件夹没有子文件夹 } } return result; }}
阅读全文
0 0
- File类文件的操作
- 操作文件的类-----File
- File类文件操作
- File类文件操作
- File 文件类操作
- File类--文件操作
- 文件操作类:File
- 操作文件的类File类
- C++的File类文件操作
- C++的File类文件操作
- C++的File类文件操作
- C++的File类文件操作
- C++的File类文件操作
- C++的File类文件操作
- java的文件File操作
- File对文件的操作
- 文件File的基本操作
- Java的File文件操作
- opencv(三):HOG+SVM实现手写字符识别
- 扩展gcd-时间复杂性
- 【剑指Offer】面试题20:顺时针打印矩阵
- 2017.07.26
- 第八章 表格单元格选取以及UIAlertController(二)
- File类文件的操作
- BOOST 计时器类 timer 、progress_timer
- JDK源码分析之多线程同步锁ReentrantLock类源码的探索
- 网络通信之xml解析和json解析
- POJ2752 Seek the Name, Seek the Fame 解题报告【字符串】【KMP】
- 剖析网卡绑定模式
- react.js关于props传值-小笔记
- [Unity] UGUI添加删除子canvas 造成unity闪退 crash 崩溃问题分析。
- 解析HttpUtil--post方法