JAVA入门之JAVA如何操作文件

2025-09-28 11:54:36

1、操作一 : 创建文件

我们这里通过 JAVA API 在 D盘 创建一个文本文件 “NewFileByJava.txt”:

在 JAVA 中,类 java.io.File 代表一个文件,我们通过指定文件路径来创建这个类的对象,并判断如果这个文件不存在,则创建新文件, 具体代码如下 :

// 指定文件路径创建 File 对象

File theNewFile = new File("D:/NewFileByJava.txt");

// 判断文件是否存在,如果不存在,则尝试创建文件

if(!theNewFile.exists()){

       try {

            // 调用 createNewFile 放创建文件,并返回创建结果

            boolean createResult = theNewFile.createNewFile();

            if(createResult){

                System.out.println("文件创建成功!");

             }else{

                 System.out.println("文件创建失败!");

             }

         } catch (IOException e) {

               e.printStackTrace();

         }

}

理论上,通过 JAVA API 可以创建任意格式的文件(任何格式文件从磁盘这个角度看,就是一堆二进制数据而已),但使用JAVA原生的文件API,我们通常只会创建文本文件,因为其他格式的文件都有非常严格的规范,我们一般都通过第三方开发包来操作,比如通过 POI 来操作 Excel ! 

关于 POI 来操作 Excel,大家如果有兴趣可以参考如下经验:

4JAVA入门之如何通过 POI 读取并修改 Excel

JAVA入门之JAVA如何操作文件

JAVA入门之JAVA如何操作文件

2、操作二 : 向文件输出内容

我们通过JAVA输出流相关类向刚刚创建的文件中输出两行内容 :

// 创建一个文件对象,我们刚刚创建这个文件

File theNewFile = new File("D:/NewFileByJava.txt");

// 创建一个文件输出流对象

FileOutputStream fos = new FileOutputStream(theNewFile);

// 创建带缓冲区的字符流输出对象,通过这个对象,我们的内容输出效率较高

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));

// 输出第一行信息

bw.write("第一行信息");

// 输出回车符(\r)换行符(\n)

// 对于 Windows系统,我们输出这两个字符后,在文件中就表现为"另起一行"

bw.write("\r\n");

bw.write("第二行信息");

// 将缓冲区的内容输出到文件中

bw.flush();

// 关闭输入流对象!!这是最佳实践!!

// 任何文件流操作完毕后,必须将流对象关闭!!

fos.close();

bw.close();

System.out.println("文件输入完毕!");

再强调一遍 : IO流对象操作完毕后,一定要关闭!!!否则你可能会遇到很多意想不到的问题!!!

JAVA入门之JAVA如何操作文件

JAVA入门之JAVA如何操作文件

3、操作三 : 从文件中读取内容

我们通过 JAVA API 将刚刚写入文件的内容读取出来,并输出到控制台中 : 

// 创建一个文件对象,我们刚刚创建这个文件

File theNewFile = new File("D:/NewFileByJava.txt");

// 创建文件输入流对象,注意,这里的输入流和输出流是相对程序而言的!

// 从程序中往外输出就是输出流,往程序中读入就是输入流

FileInputStream fis = new FileInputStream(theNewFile);

// 创建带缓冲区的字符流输入对象

BufferedReader br = new BufferedReader(new InputStreamReader(fis));

String line = null;

// 调用br.readLine(), 逐行读入所有数据,读到文件末尾,返回 null

while((line = br.readLine()) != null){

    System.out.println(line);

}

// 操作完毕,关闭所有流对象

fis.close();

br.close();

JAVA入门之JAVA如何操作文件

4、操作四 : 删除文件

我们通过 File 对象的 delete 放将文件删除!该方法返回一个 boolean 值,表明我们这个删除操作是否成功!

该方法适用于任何文件,只要我们知道该文件的具体路径,就可以删除!

// 创建一个文件对象

File theNewFile = new File("D:/NewFileByJava.txt");

// 调用 delete 方法将自己删除,并返回删除结果

boolean deleteResult = theNewFile.delete();

if(deleteResult){

    System.out.println("文件删除成功!");

}else{

    System.out.println("文件删除失败!");

}

注意 : 这个方法同样适用于删除文件夹,在 JAVA 中,一个文件夹也是一个文件,也通过 File 对象来表示!

JAVA入门之JAVA如何操作文件

5、操作五 : 通过递归操作,遍历一个文件夹下所有的文件

我们先看看通过递归调用输出文件下所有具体文件路径的方法 : 

/**

* 递归调用,输出文件夹下所有的内容

* @param fileObj

*/

private static void outputAllFileNames(File fileObj){

    if(null == fileObj){

        return;

    }

    /**

    *  如果是文件夹,则列出其中所有子文件 : 

    *  如果子文件是具体文件,则输出    其文件路径; 

    *  如果子文件是文件夹,则递归调用该方法,输出其内容。

    */

    if(fileObj.isDirectory()){

        File[] allFiles = fileObj.listFiles();

        for(File file : allFiles){

        // 如果子文件是文件夹,则递归调用该方法,输出其内部的信息

        if(file.isDirectory()){

            outputAllFileNames(file);

        }else{            // 对于具体文件,直接输出文件路径即可

            System.out.println(file.getAbsolutePath());

        }

    }

    }else{

        // 对于具体文件,直接输出文件路径即可

        System.out.println(fileObj.getAbsolutePath());

    }

}

我们可以基于这个遍历所有文件的方法,构造一个自己的文件搜索程序!

JAVA入门之JAVA如何操作文件

JAVA入门之JAVA如何操作文件

6、总结 : 我们通过常用的 JAVA API 进行了文件的创建,输出,读入,删除,遍历操作!通过这些基本操作的组合,我们能构造出很多非常好用的功能!

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢