Dalam strim Java I/O, pengekodan menukar data aksara kepada data binari dan penyahkodan menukar data binari kepada data aksara. Pengekodan: Gunakan Charset.forName() untuk mendapatkan pengekodan, kemudian gunakan Charset.encode() untuk mengekod data aksara ke dalam tatasusunan bait. Penyahkodan: Gunakan CharsetDecoder.decode() untuk menyahkod tatasusunan bait ke dalam data aksara. Kes praktikal: Gunakan BufferedWriter/BufferedReader digabungkan dengan Charset untuk membaca dan menulis fail teks, dan nyatakan format pengekodan untuk memastikan penukaran data yang betul.
Pengekodan dan penyahkodan bait dalam strim Java I/O
Dalam strim Java I/O, pengekodan dan penyahkodan bait merujuk kepada proses menukar data binari kepada data aksara atau sebaliknya. Java menyediakan pelbagai kelas dan kaedah untuk melaksanakan tugas ini.
Pengekodan: Data aksara kepada data binari
Untuk mengekod data aksara ke dalam data binari, anda boleh menggunakan kelas Charset
dalam pakej java.nio.charset
. Berikut ialah contoh pengekodan: java.nio.charset
包中的 Charset
类。以下是编码示例:
Charset charset = Charset.forName("UTF-8"); byte[] bytes = charset.encode("Hello World").array();
该示例将字符串 "Hello World" 编码为 UTF-8 编码的字节数组。
解码:二进制数据到字符数据
要将二进制数据解码为字符数据,可以使用 java.nio.charset
包中的 CharsetDecoder
类。以下是解码示例:
CharsetDecoder decoder = charset.newDecoder(); String decodedString = decoder.decode(ByteBuffer.wrap(bytes)).toString();
该示例将 UTF-8 编码的字节数组解码为字符串 "Hello World"。
实战案例:读取和写入文本文件
以下代码演示了如何使用字节编码和解码来读取和写入文本文件:
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.nio.charset.Charset; public class Main { public static void main(String[] args) { // 编码:将字符串写入文本文件 try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("text.txt"), Charset.forName("UTF-8")))) { writer.write("Hello World"); } catch (IOException e) { e.printStackTrace(); } // 解码:读取文本文件中的字符串 try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("text.txt"), Charset.forName("UTF-8")))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }
此代码会将字符串 "Hello World" 以 UTF-8 编码写入 text.txt
rrreee
CharsetDecoder
dalam pakej java.nio.charset
. Berikut ialah contoh penyahkodan: 🎜rrreee🎜Contoh ini menyahkod tatasusunan bait yang dikodkan UTF-8 ke dalam rentetan "Hello World". 🎜🎜🎜Kes Praktikal: Membaca dan Menulis Fail Teks🎜🎜🎜Kod berikut menunjukkan cara menggunakan pengekodan dan penyahkodan bait untuk membaca dan menulis fail teks: 🎜rrreee🎜Kod ini akan menukar rentetan "Hello World" kepada Tulis UTF-8 pengekodan ke fail text.txt
, dan kemudian baca dan keluarkan kandungan fail dalam pengekodan UTF-8. 🎜Atas ialah kandungan terperinci Bagaimanakah pengekodan dan penyahkodan bait dilaksanakan dalam aliran Java I/O?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!