Penukaran strim I/O Java menukar satu strim kepada strim lain untuk menukar format data. Penukaran strim pratakrif: BufferedReader, BufferedWriter dan kelas lain disediakan untuk menukar strim bait dan strim aksara. Penukaran strim tersuai: ditulis menggunakan antara muka Pembaca/Penulis dan kelas FilterInputStream/FilterOutputStream untuk memenuhi keperluan khusus.
Penukaran Strim Java I/O Streams
Pengenalan
Penukaran strim Java I/O merujuk kepada menukar satu jenis strim kepada jenis strim yang lain. Ini selalunya diperlukan untuk menukar data dari satu format ke format yang lain. Java menyediakan pelbagai transformasi strim yang dipratentukan, dan anda juga boleh menulis transformasi strim tersuai menggunakan penukar tertentu.
Penukaran strim pratakrif
Java menyediakan beberapa kelas penukaran strim pratakrif, termasuk:
Gunakan transformasi strim pratakrif
Menggunakan transformasi strim pratakrif adalah sangat mudah. Hanya buat aliran transformasi menggunakan pembina yang sesuai dan lulus aliran input sebagai parameter. Contohnya:
// 将字节流转换为字符流 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 将字符流转换为字节流 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
Transformasi strim tersuai
Kadangkala, transformasi strim yang dipratentukan tidak memenuhi keperluan khusus. Dalam kes ini, anda boleh menulis transformasi strim tersuai. Untuk melakukan ini, gunakan kelas Reader
或Writer
接口和FilterInputStream
或FilterOutputStream
. Contohnya:
// 创建一个自定义流转换,将大写字符转换为小写字符 class LowerCaseOutputStream extends FilterOutputStream { public LowerCaseOutputStream(OutputStream out) { super(out); } @Override public void write(int b) { super.write(Character.toLowerCase((char) b)); } }
Kes praktikal
Berikut ialah contoh membaca fail teks dan menukar kandungannya kepada aksara besar:
import java.io.*; public class ConvertToUpperCase { public static void main(String[] args) { try { // 创建一个文件输入流 FileInputStream inputStream = new FileInputStream("input.txt"); // 将文件输入流转换为字符流 InputStreamReader inputStreamReader = new InputStreamReader(inputStream); // 将字符流转换为大小写转换流 BufferedReader reader = new BufferedReader(inputStreamReader); // 创建一个文件输出流 FileOutputStream outputStream = new FileOutputStream("output.txt"); // 将文件输出流转换为大小写转换流 OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream); // 将输入流中的字符读入缓冲区,并将其转换为大写 String line; while ((line = reader.readLine()) != null) { outputStreamWriter.write(line.toUpperCase()); } // 关闭流 reader.close(); outputStreamWriter.close(); } catch (IOException e) { e.printStackTrace(); } } }
Atas ialah kandungan terperinci Bagaimanakah aliran Java I/O melakukan penukaran strim?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!