使用 Java 将 UTF8 数据写入文件


通常,数据以位的形式(1 或 0)存储在计算机中。有各种可用的编码方案,指定每个字符表示的字节集。

Unicode (UTF) - 代表 Unicode 转换格式。它由 Unicode Consortium 开发。如果您想创建使用来自多个字符集的字符的文档,则可以使用单个 Unicode 字符编码来实现。它提供 3 种类型的编码。

  • UTF-8 - 它以 8 位单元(字节)的形式出现,UTF8 中的一个字符可以是 1 到 4 个字节长,这使得 UTF8 成为可变宽度。

  • UTF-16 - 它以 16 位单元(短整数)的形式出现,它可以是 1 或 2 个短整数长,这使得 UTF16 成为可变宽度。

  • UTF-32 - 它以 32 位单元(长整数)的形式出现。它是一种固定宽度格式,长度始终为 1 个“长整数”。

将 UTF 数据写入文件

java.io.DataOutputStream 类的 write UTF() 方法接受一个 String 值作为参数,并使用修改后的 UTF-8 编码将其写入当前输出流。因此,要将 UTF-8 数据写入文件 -

  • 通过传递表示所需文件路径的 String 值作为参数来实例化 FileOutputStream 类。

  • 通过将上面创建的 FileOutputStream 对象作为参数来实例化 DataOutputStream 类。

  • 使用 write UTF() 方法将 UTF 数据写入上面创建的 OutputStream 对象。

  • 使用 flush() 方法将 OutputStream 对象的内容刷新到文件(目标)。

示例

 现场演示

import java.io.DataOutputStream;
import java.io.FileOutputStream;
public class UTF8Example {
   public static void main(String args[]) throws Exception{
      //Instantiating the FileOutputStream class
      FileOutputStream fileOut = new FileOutputStream("D:\samplefile.txt");
      //Instantiating the DataOutputStream class
      DataOutputStream outputStream = new DataOutputStream(fileOut);
      //Writing UTF data to the output stream
      outputStream.writeUTF("టుటోరియల్స్ పాయింట్ కి స్వాగతిం");
      outputStream.flush();
      System.out.println("Data entered into the file");
   }
}

输出

Data entered into the file

java.nio.file.Files 类的 newBufferedWriter() 方法接受一个表示文件路径的 Path 类对象和一个表示要读取的字符序列类型的 Charset 类对象,并返回一个 BufferedWriter 对象,该对象可以以指定的格式写入数据。

Charset 的值可以是 StandardCharsets.UTF_8 或 StandardCharsets.UTF_16LE 或 StandardCharsets.UTF_16BE 或 StandardCharsets.UTF_16 或 StandardCharsets.US_ASCII 或 StandardCharsets.ISO_8859_1。

因此,要将 UTF-8 数据写入文件 -

  • 使用 java.nio.file.Paths 类的 get() 方法创建/获取表示所需路径的 Path 类对象。

  • 创建/获取一个 BufferedWriter 对象,该对象可以写入 UtF-8 数据,并通过上面创建的 Path 对象和 StandardCharsets.UTF_8 作为参数。

  • 使用 append() 将 UTF-8 数据追加到上面创建的 BufferedWriter 对象。

  • 使用 flush() 方法将 BufferedWriter 的内容刷新到(目标)文件。

示例

 现场演示

import java.io.BufferedWriter;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class UTF8Example {
   public static void main(String args[]) throws Exception{
      //Getting the Path object
      Path path = Paths.get("D:\samplefile.txt");
      //Creating a BufferedWriter object
      BufferedWriter writer = Files.newBufferedWriter(path, StandardCharsets.UTF_8);
      //Appending the UTF-8 String to the file
      writer.append("టుటోరియల్స్ పాయింట్ కి స్వాగతిం");
      //Flushing data to the file
      writer.flush();
      System.out.println("Data entered into the file");
   }
}

输出

Data entered into the file

更新于: 2019 年 9 月 10 日

3K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告