使用 Java 将 UTF8 数据写入文件
通常,数据以位(1 或 0)的形式存储在计算机中。有多种编码方案可用于指定每个字符所代表的字节集。
Unicode (UTF) − 代表 Unicode 翻译格式。它由 Unicode 联盟开发。如果您要创建使用来自多个字符集的字符的文档,则可以使用单一 Unicode 字符编码来实现。它提供 3 种类型的编码。
UTF-8 − 它以 8 位(字节)为单位,UTF8 中的字符长度可以是 1 到 4 个字节,因此 UTF8 的宽度可变。
UTF-16 −它以 16 位短整型 (short) 为单位,长度可以是 1 或 2 个短整型,因此 UTF16 的宽度可变。
UTF-32 − 它以 32 位长整型 (long) 为单位。它是一种固定宽度格式,长度始终为 1 个"long"。
将 UTF 数据写入文件
java.io.DataOutputStream 类的 write UTF() 方法接受一个字符串值作为参数,并使用改进的 UTF-8 编码将其写入当前输出流。因此,要将 UTF-8 数据写入文件 −
通过传递表示所需文件路径的字符串值作为参数来实例化 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{
//实例化 FileOutputStream 类
FileOutputStream fileOut = new FileOutputStream("D:\samplefile.txt");
//实例化 DataOutputStream 类
DataOutputStream outputStream = new DataOutputStream(fileOut);
//将 UTF 数据写入输出流
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 数据写入文件 −
使用 Path 类的 get() 方法创建/获取表示所需路径的对象。 java.nio.file.Paths 类。
创建/获取一个 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{
//获取 Path 对象
Path path = Paths.get("D:\samplefile.txt");
//创建 BufferedWriter 对象
BufferedWriter writer = Files.newBufferedWriter(path, StandardCharsets.UTF_8);
//将 UTF-8 字符串附加到文件
writer.append("టుటోరియల్స్ పాయింట్ కి స్వాగతిం");
//将数据刷新到文件中
writer.flush();
System.out.println("Data entered into the file");
}
}
输出
Data entered into the file

