In Java I/O streams, encoding converts character data into binary data, and decoding converts binary data into character data. Encoding: Use Charset.forName() to obtain the encoding, then use Charset.encode() to encode the character data into a byte array. Decoding: Use CharsetDecoder.decode() to decode the byte array into character data. Practical case: Use BufferedWriter/BufferedReader combined with Charset to read and write text files, and specify the encoding format to ensure correct conversion of data.
Byte encoding and decoding in Java I/O streams
In Java I/O streams, byte encoding And decoding refers to the process of converting binary data into character data or vice versa. Java provides a variety of classes and methods to perform this task.
Encoding: character data to binary data
To encode character data into binary data, you can use the java.nio.charset
package Charset
Class. The following is an encoding example:
Charset charset = Charset.forName("UTF-8"); byte[] bytes = charset.encode("Hello World").array();
This example encodes the string "Hello World" into a UTF-8 encoded byte array.
Decoding: Binary data to character data
To decode binary data into character data, you can use the java.nio.charset
package CharsetDecoder
Class. The following is a decoding example:
CharsetDecoder decoder = charset.newDecoder(); String decodedString = decoder.decode(ByteBuffer.wrap(bytes)).toString();
This example decodes a UTF-8 encoded byte array into the string "Hello World".
Practical case: reading and writing text files
The following code demonstrates how to use byte encoding and decoding to read and write text files:
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(); } } }
This code will write the string "Hello World" to the text.txt
file in UTF-8 encoding, and then read and output the contents of the file in UTF-8 encoding.
The above is the detailed content of How is byte encoding and decoding implemented in Java I/O streams?. For more information, please follow other related articles on the PHP Chinese website!