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. vRA Customizing error

    toolsDeployPkg.log An error occurred while customizing VM vwbjvuqtest0751. For details reference the ...

  2. MySQL存储过程入门教程

    存储过程介绍 存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程可由应用程序通过一个调用来执行,而且 ...

  3. maven 相关插件

    maven打包配置,到底要打包哪些文件,如何配置??使用如下插件: <build> <finalName>weatherAdminSys</finalName> & ...

  4. Hadoop 2.x简介

    Hadoop 2.0产生背景 Hadoop1.0中HDFS和MapReduce在高可用.扩展性等方面存在问题 HDFS存在的问题 NameNode单点故障,难以应用于在线场景 NameNode压力过大 ...

  5. [转]Tomcat启动分析

    [转]Tomcat启动分析 原帖 http://docs.huihoo.com/apache/tomcat/heavyz/01-startup.html 以下摘录了部分 --------------- ...

  6. CentOS下查看文件和文件夹大小

    当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择. df可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力. 当磁盘大小超过标准时会有报警提示,这时如 ...

  7. Http请求和响应

    Http请求和响应 Http协议对浏览器发出的Request格式以及对Web服务器发出的Response格式有具体的规定. 请求部分由三部分组成: Requset line:请求行,位于第一行 Req ...

  8. Centos7搭建Mysql-5.6.38,及主从复制。

    Server1:192.168.1.189  (主) Server2:192.168.1.190  (从) 1.关闭默认的firewalld防火墙,安装iptables. systemctl disa ...

  9. codeforces 776C Molly's Chemicals(连续子序列和为k的次方的个数)

    题目链接 题意:给出一个有n个数的序列,还有一个k,问在这个序列中有多少个子序列使得sum[l, r] = k^0,1,2,3…… 思路:sum[l, r] = k ^ t, 前缀和sum[r] = ...

  10. BEC listen and translation exercise 41

    Its advantages are that it can be used for outside activities So my recommendation I'm afraid would ...