使用 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