`
红桃貳
  • 浏览: 40307 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java 学习笔记- File I/O - 创建或遍历文件目录

阅读更多

java.nio.file.Files类提供了创建或读取目录的方法,其中创建目录的方法有:

 

static Path createDirectories(Path dir, FileAttribute<?>... attrs)

1.此方法创建一个目录,如果路径所指的父目录不存在将逐一创建。

 

2.如果不指定FileAttribute(不指定是指传一个参数dir,而不是两个参数dir和null),创建的目录的属性为文件系统默认的(default)的属性。

 

3.在创建目录过程中如果该目录下已经存在一个文件和即将要创建的目录同名(文件包含扩展名)将抛出FileAlreadyExistException。

 

        Path path = Paths.get("D:\\360云盘\\javase1111.txt");
        
        Files.createDirectories(path);

 如果D:\\360云盘\\下已经存在文件javase1111.txt,则会抛出异常,否则会创建一个名为javase1111.txt的文件夹。

 

 

4.如果即将要创建的目录已经存在,此方法不会抛出FileAlreadyExistException

 

static Path createDirectory(Path dir, FileAttribute<?>... attrs)

1.此方法创建单个目录,如果父目录不存在会抛出NoSuchFileExistException.此点与上述方法不同。

 

2.关于FileAttribute与上述方法相同。

 

3.同上方法3.

 

4. 如果即将要创建的目录已经存在,此抛出FileAlreadyExistException,此点与上述方法不同

 

创建临时目录的方法:

 

static PathcreateTempDirectory(Path dir, String prefix, FileAttribute<?>... attrs)

在指定的目录dir下用指定的前缀prefix创建临时目录

 

static PathcreateTempDirectory(String prefix, FileAttribute<?>... attrs)

在系统默认的临时文件目录下创建指定前缀prefix创建临时目录

 

static PathcreateTempFile(Path dir, String prefix, String suffix, FileAttribute<?>... attrs)

在指定的目录dir下用指定的前缀prefix,后缀suffix创建临时目录

 

static PathcreateTempFile(String prefix, String suffix, FileAttribute<?>... attrs)

在系统默认的临时文件目录下创建指定前缀prefix后缀suffix创建临时目录

 

遍历目录的方法:

 

1.打印默认文件系统的根目录:

 /**
     * prints the root directories for the default file system
     */
    public static void printRootDirectory() {

        List<Path> dirs = (List<Path>) FileSystems.getDefault().getRootDirectories();
        for (Path name : dirs) {
            System.err.println(name);
        }
    }

 

2.递归打印目录下的目录和文件用“-”区分级别

 /**
     * print the content of a directory in recursion
     * 
     * @param path
     * @throws IOException
     */
    public static void listDirecotryContents(Path path) throws IOException {
        listDirecotriesInLevel(path, 0);
    }

    private static void listDirecotriesInLevel(Path path, int level) throws IOException {

        StringBuffer nEmpty = new StringBuffer();
        for (int i = 0; i < level; i++) {
            nEmpty.append("-");
        }
        DirectoryStream<Path> stream = Files.newDirectoryStream(path);
        for (Path file : stream) {
            System.out.println(nEmpty.toString() + file.getFileName());
            if (Files.isDirectory(file)) {
                listDirecotriesInLevel(file, level + 1);
            }
        }
    }

 

 

 

1
1
分享到:
评论

相关推荐

    java学习笔记-html-ssh-js

    【Java学习笔记】 在Java的学习旅程中,深入理解其核心概念是至关重要的。Java是一种广泛使用的面向对象的编程语言,以其跨平台性、高效性和稳定性而受到青睐。本笔记集合将带你逐步走进Java的世界,从基础语法到...

    文件IO学习笔记

    本篇学习笔记将深入探讨文件I/O的基本概念、常见API、操作模式以及一些实用技巧,旨在帮助初学者快速入门。 首先,我们来了解一下什么是文件I/O。在计算机系统中,文件I/O是指应用程序通过操作系统提供的接口,与...

    个人笔记--Java_API

    **4.1 java.io.File文件类** - **构造方法**: - `File(String pathname)` - `File(File parent, String child)` - **常用方法**: - `createNewFile()`:创建新文件。 - `mkdir()`:创建目录。 - `delete()`...

    java学习笔记整理

    ### Java学习笔记整理 #### 1. Java简介 ##### 1.1 计算机编程和开发语言 计算机系统由硬件系统和软件系统组成。软件系统又进一步细分为系统软件和应用软件。其中,系统软件包括操作系统、编译系统、数据库系统等...

    java学习笔记,全程

    【Java学习笔记全程详解】 Java作为一种广泛应用于企业级开发、移动应用、大数据处理等领域的编程语言,其学习过程涵盖了许多核心概念和技术。这份"我的Java学习笔记"详细记录了作者在学习Java过程中积累的心得体会...

    Java-J2SE学习笔记

    这份学习笔记将深入探讨Java编程语言的基础、核心概念以及J2SE中的关键特性。以下是一些重要的Java-J2SE知识点: 1. **Java语言基础**: - **变量与数据类型**:Java有基本数据类型(如int, double, boolean等)和...

    java学习笔记

    ### Java学习笔记知识点详解 #### 一、Java基础知识概述 Java是一种广泛使用的面向对象的编程语言,具有简单性、面向对象、健壮性、安全性、平台独立性、可移植性等特点。Java的基本知识包括以下几个方面: 1. **...

    java学习笔记文档

    Java学习笔记文档是一份专为初学者准备的宝贵资料,旨在提供系统且实用的Java编程知识。这份文档可能包含了从基础语法、数据类型到高级特性的全面讲解,旨在帮助新手快速掌握这门强大的编程语言。 首先,Java的基础...

    Java JDK 6.0基础学习笔记.rar

    在JDK 6中,NIO(Non-blocking I/O)得到了进一步加强,引入了NIO 2.0,提供了文件系统API,支持异步I/O操作,如异步文件读写,这对于构建高性能服务器端应用至关重要。 JDBC(Java Database Connectivity)在6.0...

    Java-J2SE学习笔记.rar

    6. **输入输出流**:Java的I/O流处理涵盖了文件读写、网络通信、数据转换等多个方面。掌握InputStream、OutputStream、Reader、Writer等基本流,以及File、Buffered、Print、Scanner等实用类。 7. **多线程**:Java...

    java基础核心学习笔记

    本学习笔记将深入探讨Java的核心概念,帮助你建立坚实的基础。 1. **Java语法基础** - 变量与数据类型:Java支持基本数据类型(如int、float、char)以及引用数据类型(如类、接口、数组)。变量声明必须指定类型...

    Java基础(韩顺平版)笔记详

    ### Java基础(韩顺平版)笔记详 #### 一、Java语言概述与环境搭建 - **Java的历史与发展** - Java由Sun Microsystems公司在1995年发布,由James Gosling领导开发。 - 2009年,Oracle公司收购了Sun Microsystems...

    java私塾学习笔记整理

    ### Java私塾学习笔记整理 #### 第一章:Java入门 **一、Java是什么?** Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年推出。它旨在为跨平台开发提供一种通用的语言环境,使开发者能够在任何...

    18天java学习笔记

    在“18天Java学习笔记”中,我们可以深入探索Java编程语言的基础知识,这是一个由18个独立的TXT文档组成的系列,每个文档可能涵盖了不同阶段的学习内容。这些笔记旨在帮助初学者逐步理解并掌握Java的核心概念和技术...

    达内的Java学习笔记

    - **文件操作**:掌握如何读写文件,以及使用File类进行文件和目录的操作。 - **字节流与字符流**:理解字节流和字符流的区别,以及如何使用InputStream、OutputStream、Reader、Writer进行数据传输。 - **缓冲流...

    学习笔记 java\CoreJava笔记\CoreJava_day15

    这些只是Core Java中的一部分内容,实际的学习笔记可能还会涵盖更多的细节,如枚举常量的使用、IO流的缓冲、线程池的创建、集合的遍历策略、序列化等。深入理解和熟练掌握这些知识,将为成为一个优秀的Java开发者...

    xiong-yonggui-java-script-personal-file-master_javascript_

    在这个压缩包中,熊永贵可能分享了他的学习笔记、代码示例、练习项目的源码,通过深入研究这些内容,不仅可以复习JavaScript的基本知识,还能学习到作者的思考方式和编程习惯。对于初学者和有经验的开发者来说,都是...

    java笔记 java笔记 java笔记

    这份"java笔记"涵盖了从基础到进阶的各种Java知识,旨在帮助学习者系统地掌握这门语言。以下是对笔记内容的详细解读: 1. **Java基础知识**: - **语法特性**:Java遵循C++的语法结构,但更加简洁和安全,如自动...

Global site tag (gtag.js) - Google Analytics