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

当我们在开发Java应用程序时,可能会遇到需要将数据写入文件的需求,本文将介绍Java中创建、写入文件的5种方式。

1. 使用FileOutputStream和BufferedOutputStream创建和写入文件

使用Java的FileOutputStream和BufferedOutputStream类,我们可以创建和写入文件:

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

public class FileExample {
   public static void main(String[] args) throws IOException {
      Scanner scanner = new Scanner(System.in);
      System.out.println("请输入一个字符串:");
      String str = scanner.nextLine();

      // 创建文件输出流和缓冲输出流
      FileOutputStream fileOutputStream = new FileOutputStream("output.txt");
      BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);

      // 将字符串写入到文件中
      byte[] buffer = str.getBytes(StandardCharsets.UTF_8);
      bufferedOutputStream.write(buffer);

      // 关闭流
      bufferedOutputStream.close();
      fileOutputStream.close();
   }
}

上述示例中,我们通过Scanner类获得用户输入的字符串,然后使用FileOutputStream和BufferedOutputStream类创建文件输出流和缓冲输出流。接着,将字符串转换为字节数组,然后将其写入缓冲输出流中。最后,我们必须关闭流以避免资源泄漏。

2. 使用PrintWriter创建和写入文本文件

另一种写入文件的方法是使用Java的PrintWriter类,可以将数据写入文本文件:

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class FileExample {
   public static void main(String[] args) throws IOException {
      Scanner scanner = new Scanner(System.in);
      System.out.println("请输入一个字符串:");
      String str = scanner.nextLine();

      // 创建PrintWriter对象并将其包装在FileWriter对象中
      PrintWriter printWriter = new PrintWriter(new FileWriter(new File("output.txt")));

      // 将字符串写入到文件中
      printWriter.print(str);

      // 关闭流
      printWriter.close();
   }
}

上述示例中,我们通过Scanner类获得用户输入的字符串,然后使用PrintWriter类创建打印流。我们将打印流包装在FileWriter类中,并指定输出文件的路径。然后,我们使用PrintWriter类的print()方法将字符串写入到文件中。最后,流必须关闭以释放资源。

除了print()方法,PrintWriter还提供了println()方法,它可以将字符串作为新行写入文件:

printWriter.println(str);

3. 使用Files类创建和写入文件

在Java 7中,Files类提供了方便的方法来创建和写入文件:

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Scanner;

public class FileExample {
   public static void main(String[] args) throws IOException {
      Scanner scanner = new Scanner(System.in);
      System.out.println("请输入一个字符串:");
      String str = scanner.nextLine();

      // 将字符串写入到文件中
      Path path = Paths.get("output.txt");
      byte[] buffer = str.getBytes(StandardCharsets.UTF_8);
      Files.write(path, buffer);

   }
}

在这个示例中,我们使用Scanner类获取用户输入的字符串。然后,我们使用Files类的write()方法将字符串转换为字节数组,并将其写入到文件中。文件路径由Paths类提供的静态get()方法表示。

4. 使用BufferedWriter和FileWriter创建和写入文件

另一种创建和写入文件的方法是使用BufferedWriter和FileWriter类:

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class FileExample {
   public static void main(String[] args) throws IOException {
      Scanner scanner = new Scanner(System.in);
      System.out.println("请输入一个字符串:");
      String str = scanner.nextLine();

      // 创建文件输出流和缓冲输出流
      FileWriter fileWriter = new FileWriter("output.txt");
      BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);

      // 将字符串写入到文件中
      bufferedWriter.write(str);

      // 关闭流
      bufferedWriter.close();
      fileWriter.close();
   }
}

在上述示例中,我们使用Scanner类获取用户输入的字符串,然后使用FileWriter和BufferedWriter类创建文件输出流和缓冲输出流。我们将字符串写入到缓冲输出流中,最后必须关闭流以释放资源。

5. 使用RandomAccessFile类创建和写入文件

最后一种创建和写入文件的方法是使用Java的RandomAccessFile类:

import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Scanner;

public class FileExample {
   public static void main(String[] args) throws IOException {
      Scanner scanner = new Scanner(System.in);
      System.out.println("请输入一个字符串:");
      String str = scanner.nextLine();

      // 创建RandomAccessFile并设置文件长度
      RandomAccessFile randomAccessFile = new RandomAccessFile("output.txt", "rw");
      randomAccessFile.setLength(0);

      // 将字符串写入到文件中
      randomAccessFile.writeBytes(str);

      // 关闭流
      randomAccessFile.close();
   }
}

在上述示例中,我们使用Scanner类获取用户输入的字符串,然后使用RandomAccessFile类创建文件并设置其长度。最后,我们将字符串写入到文件中,然后关闭流以释放资源。

这里的"rw"参数是为了告诉RandomAccessFile类可以进行读写操作。如果只需要进行写操作,则可以使用"w"参数。

以上就是Java中创建和写入文件的5种方式。根据你的需求和喜好选择其中的一种最适合你的方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java中创建、写入文件的5种方式 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • spring整合JMS实现同步收发消息(基于ActiveMQ的实现)

    下面我将给您详细讲解“spring整合JMS实现同步收发消息(基于ActiveMQ的实现)”的完整攻略。 什么是JMS JMS(Java Messaging Service)是Java EE标准的消息中间件API。它提供了一种发送和接收消息的标准方法,以及处理和管理消息的机制。 什么是ActiveMQ ActiveMQ是一款常用的基于JMS的开源消息中间件,…

    Java 2023年5月20日
    00
  • Spring Security基于json登录实现过程详解

    以下是“Spring Security基于json登录实现过程详解”的完整攻略: 什么是Spring Security? Spring Security是一个基于Spring框架的安全控制框架。它提供了一种在Web请求级别和方法级别上控制访问的方式,并为身份验证、授权和攻击保护提供了大量的支持和扩展。 Spring Security基于json登录实现的过程…

    Java 2023年5月20日
    00
  • 详解堆排序算法原理及Java版的代码实现

    下面就是详解堆排序算法原理及Java版的代码实现的完整攻略。 堆排序算法原理 堆排序是一种基于完全二叉树的排序算法,它分为两个主要步骤:建堆和排序。其中建堆是将一个无序的数组调整成堆的过程,排序则是将堆中数据按照从小到大或从大到小的顺序进行排序的过程。 建堆过程中,首先需要从最后一个非叶子节点开始调整,保证整个数组满足堆的性质。若此处节点的值比它的子节点小,…

    Java 2023年5月19日
    00
  • Spring整合JUnit详解

    Spring整合JUnit详解 在使用Spring框架开发Java应用时,常常需要进行单元测试。JUnit是Java中最常用的测试框架之一。本文将介绍如何在Spring应用中整合JUnit,以进行单元测试。 搭建测试环境 添加JUnit和Spring-test依赖 在pom.xml文件中添加以下依赖: <dependency> <group…

    Java 2023年5月19日
    00
  • Java编写Mapreduce程序过程浅析

    Java编写Mapreduce程序是一项重要的技能,能够帮助我们高效地处理大型数据集。以下是关于Java编写Mapreduce程序的完整攻略: 1. 准备开发环境 在Java编写Mapreduce程序之前,需要准备好以下开发环境: 开发工具:推荐使用IntelliJ IDEA或Eclipse等常见Java开发工具。 Hadoop环境:需要安装Hadoop环境…

    Java 2023年5月19日
    00
  • Java transient 关键字是干啥的

    当Java中的对象被序列化时,它们的所有属性(包括私有属性)都将被保存。在某些情况下,某些属性可能不想被序列化。在这种情况下,使用Java中的transient关键字进行标记,表示该属性不应该被序列化,并且不存储在返回的字节数组中。 在Java中,transient是一个关键字,用于标记类成员变量,通常用于序列化和反序列化。 Markdown 格式 在Mar…

    Java 2023年5月20日
    00
  • Android互联网访问图片并在客户端显示的方法

    下面是详细的”Android互联网访问图片并在客户端显示的方法”攻略: 1. 加载本地图片 在Android中,你可以通过使用ImageView组件来显示一张本地的图片。下面是一个示例代码,该代码将图片文件res/drawable-hdpi/icon.png放入ImageView组件中。 <ImageView android:id="@+id…

    Java 2023年6月15日
    00
  • spring启动后保证创建的对象不被垃圾回收器回收

    确保spring创建的对象不被垃圾回收器回收需要明白spring是如何管理bean的。bean是指spring容器中的对象,它们都有自己的生命周期,spring对bean的管理保证了bean在合适的时间被创建并放入容器中,并在合适的时间被销毁。因此,在合适的时机,spring 将会自动为 bean 进行垃圾回收。但是,如果我们不想让被 spring 管理的 …

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部