java File基本操作,以及递归遍历文件夹

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的同志解惑

时间: 2024-10-13 10:16:03

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

[C#]递归遍历文件夹

// <summary> /// 递归获取文件夹目录下文件 /// </summary> /// <param name="pathName">需要递归遍历的文件夹</param> /// <param name="fileRule">遍历规则『委托』</param> public static void LoopFolder(string pathName, Action<FileInf

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

文件夹相关函数介绍 //mkdir 函数创建文件夹 #include <sys/stat.h> #include <sys/types.h> int mkdir(const char *pathname, mode_t mode); //rmdir 删除文件夹 #include <unistd.h> int rmdir(const char *pathname); //dopendir/fdopendir  //打开文件夹 DIR是一个结构体,是一个内部结构,用来存储读

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

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

java _io_面向对象风格递归获得文件夹大小

public class test { private int sum; //文件夹大小 private String path; //路径 private File f; public static void main(String[]args) throws IOException { test t=new test("D:/d"); System.out.println(t.getSum()); } public test(String path) { this.path=pat

Java递归遍历文件夹

import java.io.File; public class Test { /** * @param args * @author itmyhome */ public static void main(String[] args) { File f = new File("F:/javaAPI/JavaAPI1.6/java/awt"); printFile(f, 0); } public static void printFile(File f, int len) { Str

递归遍历文件夹中的文件

package util; import java.io.File; import java.util.ArrayList; import entity.FileOfDown; public class FileUtil { public static ArrayList<File> getFiles(String absolutePath){ return new FileList(absolutePath).fileList ; } /** * * 功能: 实现遍历指定绝对路径下的所有文件

递归遍历文件夹、取所有文件。包括子目录。

private int count = 0; private int TransformFiles(string path) { DirectoryInfo dir = new DirectoryInfo(path); DirectoryInfo[] dirs = dir.GetDirectories(); //获取子目录 FileInfo[] files = dir.GetFiles("*.*"); //获取文件名 List<string> list = new List

PHP递归遍历文件夹

function get_files($dir) { $files = array(); if(!is_dir($dir)) { return $files; } $handle = opendir($dir); if($handle) { while(false !== ($file = readdir($handle))) { if ($file != '.' && $file != '..') { $filename = $dir . "/"  . $file;

PHP递归和非递归遍历文件夹下文件

function readDirFiles($dir){ $files= []; $queue=[realpath($dir)]; $currentPath = current($queue); while($currentPath) { $path = $currentPath; if (is_dir($path) && $handle = opendir($path)) { while ($file = readdir($handle)) { if ($file == '.' || $