java 的文件操作,相对来说是比较重要的,无论是编写CS还是BS程序,都避免不了要与文件打交道,例如读写配置文件等。虽然现在很多框架都直接帮你做好了这一步!

java.io.File 底层是调用与c语言接的接口,所以我们暂时不需要知道底层是怎么实现的,再说了,也看不见,最多就是看见一个接口而已。我们只需要知道java.io.File提供给我们对文件的一些操作就行了。

1.文件的创建

  :java的文件创建可以直接通过new一个对象来实现。

  

 File file = new File(String pathName)

 File file = new File(String parent, String child)

  主要的就是这两种创建文件方式,第一种pathName是一个抽象路径名。比如file = new File("E:/game/WM3.log"); 创建一个文件叫做E:/game/WM3.log

  第二种就是抽象路径名加上路径名

  文件操作的基本方法:

   boolean exists()  //文件是否已存在

   boolean createNewFile()  //当且仅当指定抽象路径名不存在时创建一个新的空文件

   boolean delete()  //删除指定抽象路径名的文件

   File getAbsoluteFile()  //返回抽象路径名抽象路径名形式

   String getAbsolutePath()  //返回抽象路径名的字符串形式

   String getName()  //返回抽象路径名表示的文件或路径

   long length()  //返回抽象路径名的文件长度

   String[] list()  //返回抽象路径名的文件或目录的字符串数组

   File[] listFiles()  //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件

   File[] listFiles(FileFilter filter)  //返回Filter过滤的抽象路径名数组

   boolean mkdir()  //创建一个路径名为目录

   boolean mkdirs()  //创建多层的目录,包括不存在的目录的父目录

  这些方法都是相对常用的,其他还有一些特殊环境使用的方法,当有需要是可以查API

2.遍历抽象路径路径下的文件以及所有子目录

有两种方法实现,但是我只实现用递归的方法

  

 import java.io.File;
  import java.io.FileNotFoundException;
  import java.io.IOException;
  import java.io.RandomAccessFile;
  import java.util.ArrayList;
  import java.util.List;   /**
  * 主要复习文件创建以及文件价
  * @author heack
  *
  */
  public class DirAndFile {   File or;
  File[] files;   List<String> pathName = new ArrayList<String>();   // 用于遍历文件价
  public void iteratorPath(String dir) {
    or = new File(dir);
    files = or.listFiles();
    if (files != null) {
      for (File file : files) {
        if (file.isFile()) {
          pathName.add(file.getName());
        }else if (file.isDirectory()) {
          iteratorPath(file.getAbsolutePath());
        }
      }
    }
  }   public static void main(String[] args) {
    DirAndFile and = new DirAndFile();
    and.iteratorPath("E:/");
    for (String list : and.pathName) {
     System.out.println(list);
    }
  }
}

此随笔为以后复习使用,也供新入java的同志解惑

java File基本操作,以及递归遍历文件夹的更多相关文章

  1. Java File类应用:递归遍历文件夹和递归删除文件

    要求: 1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件 2)采用递归删除文件下的所有文件 注意: 以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在 若要删除正文文件夹,可以在递归 ...

  2. java中File类应用:遍历文件夹下所有文件

    练习: 要求指定文件夹下的所有文件,包括子文件夹下的文件 代码: package 遍历文件夹所有文件; import java.io.File; public class Test { public ...

  3. 使用java API进行zip递归压缩文件夹以及解压

    一.概述 在本篇文章中,给大家介绍一下如何将文件进行zip压缩以及如何对zip包解压.所有这些都是使用Java提供的核心库java.util.zip来实现的. 二.压缩文件 首先我们来学习一个简单的例 ...

  4. Java学习随笔3:遍历文件夹及文件的读取和写入

    import java.io.File; /** * 遍历文件夹 */ public class ScannerFile { public static void main(String[] args ...

  5. [C#]递归遍历文件夹

    /// <summary> /// 递归获取文件夹目录下文件 /// </summary> /// <param name="pathName"> ...

  6. linux文件夹操作及递归遍历文件夹

    文件夹相关函数介绍 //mkdir 函数创建文件夹 #include <sys/stat.h> #include <sys/types.h> int mkdir(const c ...

  7. TypeScript ES6-Promise 递归遍历文件夹中的文件

    貌似很多人都爱用这个作为写文章的初尝试,那来吧.遍历文件夹下的所有文件,如遍历文件夹下并操作HTML/CSS/JS/PNG/JPG步骤如下:1.传入一个路径,读取路径里面所有的文件:2.遍历读取的文件 ...

  8. Python【day 14-2】递归遍历文件夹

    #需求 遍历文件夹中所有的子文件夹及子文件--用递归实现 '''''' ''' 伪代码 1.遍历根目录--listdir for 得到第一级子文件夹(不包含子文件夹的子文件)和文件 2.判断是文件还是 ...

  9. Java使用线程池递归压缩文件夹下面的所有子文件

    本文将介绍Java中利用线程池递归的方式压缩文件夹下面的所有子文件,具体方法如下: Gzip单个文件压缩 对于单个文件使用GZip压缩. package date0805.demo1; import ...

随机推荐

  1. python Tkinter之Button

    Button小部件是一个标准的Tkinter的部件,用于实现各种按钮.按钮可以包含文本或图像,您可以调用Python函数或方法用于每个按钮. Tkinter的按钮被按下时,会自动调用该函数或方法. 该 ...

  2. python第四篇:linux命令行总结 + 自动备份Python程序

    由于最近需要学习Python爬虫相关的知识,所以就先从Python基础.Linux基础开始进行了学习,下面主要是总结了常见的Linux的命令行.最后为了巩固学到的东西,尝试写了个自动备份的Python ...

  3. C# 多服务器上传 示例

    图片服务器  带宽越来越不够用,还有当一台服务器的机房出问题的时候,不影响 整个web,以及 考虑网通电信访问服务器的 速度,所以考虑使用多台 图片 服务器 这个时候要求 图片服务器 内容是同步 的  ...

  4. el表达式判断字符串相等

    el表达式判断字符串相等 Java code 1 ${"a" == "a"}  ${"b" eq "b"}  都可以 & ...

  5. 使用mybatis-generator插件结合tk.mybatis自动生成mapper二三事

    本篇文章将介绍使用spring boot框架,引入mybatis-generator插件,结合tk.mybatis自动生成Mapper和Entity的一整套流程,其中包括最重要的踩坑与填坑.     ...

  6. 《java编程思想》:字符串

    1.String对象是不可变的,String类中每个看起来会修改String值的方法,实际上都是创建了一个新的String对象,来包含修改后的内容,所以在对String修改后,想打印新的值,可以直接打 ...

  7. JAVA标号与continue,break

    可以给语句块加标号赋予它们名称,标号位于语句之前.标号只能被continue和break引用.格式如下:     label:statement     语句前只允许加一个标号,标号后面不能跟大括号. ...

  8. C\C++的转义字符

    C\C++的转义字符 所有的ASCII码都可以用"\"加数字(一般是8进制数字)来表示.而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符, ...

  9. IronPython for ASP.NET 部署注意事项

    用 IronPython for ASP.NET 开发的网站,在部署时,除了发布 bin 目录下的 IronPython.dll, IronMath.dll, Microsoft.Web.IronPy ...

  10. 一次spark卡顿分析

    在104上面执行,经常会发生卡到了如下一句话: storage.BlockManagerInfo: Added broadcast_8_piece0 当再次卡顿的时候,我直接退出,然后通过yarn看后 ...