java将文件内容写入mysql6_文件写入的6种方法,这种方法性能最好

本文介绍了Java中文件写入的6种方法,包括FileWriter、BufferedWriter、PrintWriter、FileOutputStream、BufferedOutputStream以及Files类,并通过性能测试得出,带有缓冲区的BufferedWriter在字符串写入时表现最佳。同时,文章提到了如何实现内容追加以及各类方法的适用场景。
摘要由CSDN通过智能技术生成

在 Java 中操作文件的方法本质上只有两种:字符流和字节流,而字节流和字符流的实现类又有很多,因此在文件写入时我们就可以选择各种各样的类来实现。我们本文就来盘点一下这些方法,顺便测试一下它们性能,以便为我们选出最优的写入方法。

在正式开始之前,我们先来了解几个基本的概念:流、字节流和字符流的定义与区别。

0.什么是流?

Java 中的“流”是一种抽象的概念,也是一种比喻,就好比水流一样,水流是从一端流向另一端的,而在 Java 中的“水流”就是数据,数据会从一端“流向”另一端。

根据流的方向性,我们可以将流分为输入流和输出流,当程序需要从数据源中读入数据的时候就会开启一个输入流,相反,写出数据到某个数据源目的地的时候也会开启一个输出流,数据源可以是文件、内存或者网络等。

1.什么是字节流?

字节流的基本单位为字节(Byte),一个字节通常为 8 位,它是用来处理二进制(数据)的。字节流有两个基类:InputStream(输入字节流)和 OutputStream(输出字节流)。

常用字节流的继承关系图如下图所示:

434abe370bc3d0d01169954d320cd926.png

其中 InputStream 用于读操作,而 OutputStream 用于写操作。

2.什么是字符流?

字符流的基本单位为 Unicode,大小为两个字节(Byte),它通常用来处理文本数据。字符流的两个基类:Reader(输入字符流)和 Writer(输出字符流)。

常用字符流的继承关系图如下图所示:

e9f9e01bc547717d2c9130cce2cde27c.png

3.流的分类

流可以根据不同的维度进行分类,比如可以根据流的方向进行分类,也可以根据传输的单位进行分类,还可以根据流的功能进行分类,比如以下几个。

① 按流向分类

输出流:OutputStream 和 Writer 为基类。

输入流:InputStream 和 Reader 为基类。

② 根据传输数据单位分类

字节流:OutputStream 和 InputStream 为基类。

字符流:Writer 和 Reader 为基类。

③ 根据功能分类

字节流:可以从或向一个特定的地方(节点)读写数据。

处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。

PS:我们通常是以传输数据的单位来为流进行分类。

4.写文件的6种方法

写入文件的方法主要源于字符流 Writer 和输出字节流 OutputStream 的子类,如下图所示:

121fbfcf6e64b5d6dd350db64acce513.png

以上标注✅号的类就是用来实现文件写入的类,除此之外,在 JDK 1.7 中还提供了 Files 类用来实现对文件的各种操作,接下来我们分别来看。

方法 1:FileWriter

FileWriter 属于「字符流」体系中的一员,也是文件写入的基础类,它包含 5 个构造函数,可以传递一个具体的文件位置,或者 File 对象,第二参数表示是否要追加文件,默认值为 false 表示重写文件内容,而非追加文件内容(关于如何追加文件,我们后面会讲)。

89555b83716cd61d48978bfe9b0116c5.png

FileWriter 类的实现如下:

/**

* 方法 1:使用 FileWriter 写文件

* @param filepath 文件目录

* @param content 待写入内容

* @throws IOException

*/

public static void fileWriterMethod(String filepath, String content) throws IOException {

try (FileWriter fileWriter = new FileWriter(filepath)) {

fileWriter.append(content);

}

}

只需要传入具体的文件路径和待写入的内容即可࿰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值