关于java中创建、写入文件的5种方式

article/2025/10/16 0:47:56

这篇文章主要介绍了java中创建、写入文件的5种方式,帮助大家更好的理解学习Java io的相关知识 。

在java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面笔者就帮大家总结一下java中创建文件的五种方法。

  1. Files.newBufferedWriter(Java 8)
  2. Files.write(Java 7 推荐)
  3. PrintWriter
  4. File.createNewFile
  5. FileOutputStream.write(byte[] b) 管道流

实际上不只这5种,通过管道流的排列组合,其实有更多种,但是笔者总结的这五种可以说是最常用及最佳实践,

前提小知识

以前我在写技术文章涉及到“流关闭”、“连接关闭”的时候,经常有人留言:“还写技术文章,写个流都不知道close()”,这种留言我遇到过无数回!
在本文中大量的使用到了try-with-resources语法,这个语法真的是很久的了,但是的确还有小伙伴不知道(知道的小伙伴就略过吧)。我还是说一下,下文中的管道流不是我没close,是自动关闭close的。

1

2

3

4

try(管道流、连接等实现了Closeable接口的类){

  //这里使用类对象操作

}

//用try()包含起来,就不用在finally里面自己手动的去 Object.close()了,会自动的关闭

1. Java 8 Files.newBufferedWriter

java8 提供的newBufferedWriter可以创建文件,并向文件内写入数据。可以通过追加写模式,向文件内追加内容。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

@Test

void testCreateFile1() throws IOException {

  String fileName = "D:\\data\\test\\newFile.txt";

  Path path = Paths.get(fileName);

  // 使用newBufferedWriter创建文件并写文件

  // 这里使用了try-with-resources方法来关闭流,不用手动关闭

  try (BufferedWriter writer =

          Files.newBufferedWriter(path, StandardCharsets.UTF_8)) {

   writer.write("Hello World -创建文件!!");

  }

  //追加写模式

  try (BufferedWriter writer =

        Files.newBufferedWriter(path,

            StandardCharsets.UTF_8,

            StandardOpenOption.APPEND)){

    writer.write("Hello World -字母哥!!");

  }

}

2. Java 7 Files.write

下面的这种方式Files.write,是笔者推荐的方式,语法简单,而且底层是使用Java NIO实现的。同样提供追加写模式向已经存在的文件种追加数据。这种方式是实现文本文件简单读写最方便快捷的方式。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

@Test

void testCreateFile2() throws IOException {

  String fileName = "D:\\data\\test\\newFile2.txt";

  // 从JDK1.7开始提供的方法

  // 使用Files.write创建一个文件并写入

  Files.write(Paths.get(fileName),

        "Hello World -创建文件!!".getBytes(StandardCharsets.UTF_8));

  // 追加写模式

  Files.write(

     Paths.get(fileName),

     "Hello World -字母哥!!".getBytes(StandardCharsets.UTF_8),

     StandardOpenOption.APPEND);

}

3. PrintWriter

PrintWriter是一个比较古老的文件创建及写入方式,从JDK1.5就已经存在了,比较有特点的是:PrintWriter的println方法,可以实现一行一行的写文件。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

@Test

void testCreateFile3() throws IOException {

  String fileName = "D:\\data\\test\\newFile3.txt";

  // JSD 1.5开始就已经存在的方法

  try (PrintWriter writer = new PrintWriter(fileName, "UTF-8")) {

   writer.println("Hello World -创建文件!!");

   writer.println("Hello World -字母哥!!");

  }

  // Java 10进行了改进,支持使用StandardCharsets指定字符集

  /*try (PrintWriter writer = new PrintWriter(fileName, StandardCharsets.UTF_8)) {

   writer.println("first line!");

   writer.println("second line!");

  } */

}

4. File.createNewFile()

createNewFile()方法的功能相对就比较纯粹,只是创建文件不做文件写入操作。 返回true表示文件成功,返回 false表示文件已经存在.可以配合FileWriter 来完成文件的写操作。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

@Test

void testCreateFile4() throws IOException {

  String fileName = "D:\\data\\test\\newFile4.txt";

  File file = new File(fileName);

  // 返回true表示文件成功

  // false 表示文件已经存在

  if (file.createNewFile()) {

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

  } else {

   System.out.println("文件已经存在不需要重复创建");

  }

  // 使用FileWriter写文件

  try (FileWriter writer = new FileWriter(file)) {

   writer.write("Hello World -创建文件!!");

  }

}

5.最原始的管道流方法

最原始的方式就是使用管道流嵌套的方法,但是笔者觉得这种方法历久弥新,使用起来非常灵活。你想去加上Buffer缓冲,你就嵌套一个BufferedWriter,你想去向文件中写java对象你就嵌套一个ObjectOutputStream。但归根结底要用到FileOutputStream。

1

2

3

4

5

6

7

8

9

10

@Test

void testCreateFile5() throws IOException {

  String fileName = "D:\\data\\test\\newFile5.txt";

  try(FileOutputStream fos = new FileOutputStream(fileName);

   OutputStreamWriter osw = new OutputStreamWriter(fos);

   BufferedWriter bw = new BufferedWriter(osw);){

   bw.write("Hello World -创建文件!!");

   bw.flush();

  }

}

以上就是java中创建、写入文件的5种方式的详细内容,希望对你有所帮助。

来源:微点阅读  https://www.weidianyuedu.com


http://chatgpt.dhexx.cn/article/4Gjg51vS.shtml

相关文章

java使用File类创建文件或文件夹

在输入框中输入字符串,判断输入的是文件还是文件夹,如果是文件就出创建问价,是文件夹就出创建文件夹,在创建的时候没有就创建,有就删除(例如:test、test.txt) package Iodemo;impor…

Java--如何创建目录或文件

在java当中,描述文件的类:java.io.File;注意:这个File类仅仅是用于保存文件的相关信息,并非文件本身。 1 效果展示 2 实例代码 package Demo01; import java.io.File; import java.io.IOException;public class MyFi…

java中同时创建文件夹和文件

import java.io.File; import java.io.IOException;public class FileUtils {/*** 创建文件夹和文件** throws IOException*/public static void createFilesAndFolders() throws IOException {File newFile new File("D:/image/123.txt");File dir newFile.getPa…

Java——创建文件

package day05;import java.io.File; import java.io.IOException;/*** 使用File操作文件* 创建一个空文件* author Administrator**/ public class FileDemo2 {public static void main(String[] args) throws Exception {/** 在当前项目的根目录下创建一个文件* test.txt*///…

java创建文件夹(Java创建文件夹失败重新创建)

java创建目录或文件夹的方法? 1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败 2、File类的mkdir方法根据抽象路径创建目录32313133353236313431303231363533e78988e69d8331333337393532 3、Fi…

【Java】创建文件夹

Java中创建文件夹使用File类下自带的mkdirs()方法就能够轻松完成了, 本来没有什么好说的,唯一值得注意的是这个mkdirs()能够一次性创建多级目录,无须递归调用。也就是说,我要创建在F盘新建一个文件夹a,然后在这个文件…

Java 创建文件,文件夹不存在时,如何创建

创建文件 String url "C:/Users/yz/Desktop/test";new File(String.format("%s/%s.%s", url, "test","txt")).createNewFile(); 如果文件夹路径不存在则会报如下错误: 正确代码: String url "C:/Users/…

java创建文件夹和文件并写入

java创建文件夹及TXT文件并写入 最近需要做一个云存档的模块,刚开始创建的时候经常报找不到路径,记录一下我感觉不错的写法 测试类 package com.xzly;import org.junit.Test; import org.springframework.boot.test.context.SpringBootTest; import jav…

Java文件创建

一.创建文件的方式:一种方式即可 方式一: public void creat01(){String filePath "E:\\news.txt";File file new File(filePath);try {file.createNewFile();System.out.println("文件创建成功");} catch (IOException e) {e.printStackTrace();} } …

总结java创建文件夹的4种方法及其优缺点-JAVA IO基础总结第三篇

本文是Java IO总结系列篇的第3篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 本文为大家介绍Java IO-创建文件夹的四种方法,及其优缺点的解析。…

Java创建文件和文件夹

例子如下: java代码: import java.io.*;//导入所需的包 public class IOTest {//类public static void main(String[] args){//主程序,程序入口File filenew File("D:\\Qiju_Li");if(!file.exists()){//如果文件夹不存在file.mkdi…

CentOS7.7 重启crond失败 service crond restart

用service crond restart命令启动如图: 应使用 /bin/systemctl 执行命令 查看crontab状态: service crond status

配置crond定时任务

文章目录 一. crond计划任务概述二. crond配置文件详解三. crond计划任务管理四. crond配置编写实例五. crond计划任务调试 一. crond计划任务概述 什么是计划任务,计划任务类似于我们平时生活中的闹钟。 在Linux系统的计划任务服务crond可以满足周期性执行任务的需…

Linux的crond的配置流程,Linux之定时任务Crond详解

定时任务Crond介绍 Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件,一般情况下,我们安装完Centos5/6 linux操作系统之后,默认便会启动Crond任务调度服务。 Crond服务会定期(默认每分钟检查一次)检查系统…

linux 之 crond定时任务

一、crond简介 crond 是linux下用 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 文章目录 前言 一、系统任务调度 二、crond服务 1.安装crontab: 常用命令: 2.操作设置 新增调度…

crond服务总结

昨天翻阅程序发现服务器端管理程序的启动方式很特别,在之前是由init进程启动程序脚本里的进程,昨天发现服务程序并没有在任何脚本中有启动的体现,但是服务程序确实是启动了,经过一番查找发现原来是crond定时启动被触发然后启动了服…

crond

Linux中的crond:设置周期性被执行的指令 crond与crontab密不可分,简言之,crond是crontab的一个守护进程。 crontab是一个命令,它从标准输入设备读取指令,存放于“contab文件”中,供以后读取和执行。 crond时…

linux 很多CROND进程,linux添加定时任务crond

1.crontab –e:编辑当前定时任务 保存完重新crond : service crond restart 2. crontab用法 crontab –e : 修改 crontab 文件,如果文件不存在会自动创建。 crontab –l : 显示 crontab 文件。 crontab -r : 删除 crontab 文件。 crontab -ir : 删除 crontab 文件前…

crond使用指南

crontab 为定时执行脚本命令,我学习这个的目的是为了定时执行校园网登录脚本,以防止服务器内网穿透掉线。 1. 编写联网脚本 2. 赋予脚本执行权限 3. 安装crond yum install crontabs -y systemctl enable crond #设为开机启动 systemctl start crond…

linux下crond服务,Linux之定时任务Crond详解

定时任务Crond介绍 Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件,一般情况下,我们安装完Centos5/6 linux操作系统之后,默认便会启动Crond任务调度服务。 Crond服务会定期(默认每分钟检查一次)检查系统…