Heim >Java >javaLernprogramm >Wie führt der Java-I/O-Stream eine Stream-Konvertierung durch?

Wie führt der Java-I/O-Stream eine Stream-Konvertierung durch?

WBOY
WBOYOriginal
2024-04-13 11:45:01584Durchsuche

Die Java-I/O-Stream-Konvertierung wandelt einen Stream in einen anderen Stream um, um das Datenformat zu ändern. Vordefinierte Stream-Konvertierung: BufferedReader, BufferedWriter und andere Klassen werden zum Konvertieren von Byte-Streams und Zeichen-Streams bereitgestellt. Benutzerdefinierte Stream-Konvertierung: geschrieben mit der Reader/Writer-Schnittstelle und der FilterInputStream/FilterOutputStream-Klasse, um spezifische Anforderungen zu erfüllen.

Java I/O流是如何进行流转换的?

Stream-Konvertierung von Java-I/O-Streams

Einführung

Java-I/O-Stream-Konvertierung bezieht sich auf die Konvertierung eines Stream-Typs in einen anderen Stream-Typ. Dies ist häufig erforderlich, um Daten von einem Format in ein anderes zu konvertieren. Java bietet eine Vielzahl vordefinierter Stream-Transformationen, und Sie können mit bestimmten Konvertern auch benutzerdefinierte Stream-Transformationen schreiben.

Vordefinierte Stream-Konvertierungen

Java bietet mehrere vordefinierte Stream-Konvertierungsklassen, darunter:

  • BufferedReader: Byte-Stream in Zeichen-Stream konvertieren.
  • BufferedWriter: Zeichenstrom in Bytestrom konvertieren.
  • DataInputStream: Byte-Stream in Dateneingabe-Stream konvertieren.
  • DataOutputStream: Konvertieren Sie den Datenausgabestream in einen Bytestream.
  • ObjectInputStream: Byte-Stream in Objekt-Eingabestream konvertieren.
  • ObjectOutputStream: Konvertieren Sie den Objektausgabestream in einen Bytestream.

Verwenden Sie vordefinierte Stream-Transformationen

Die Verwendung vordefinierter Stream-Transformationen ist sehr einfach. Erstellen Sie einfach den Transformationsstream mit dem entsprechenden Konstruktor und übergeben Sie den Eingabestream als Parameter. Zum Beispiel:

// 将字节流转换为字符流
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

// 将字符流转换为字节流
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));

Benutzerdefinierte Stream-Transformation

Manchmal erfüllen vordefinierte Stream-Transformationen bestimmte Anforderungen nicht. In diesem Fall können Sie eine benutzerdefinierte Stream-Transformation schreiben. Verwenden Sie dazu die Klasse ReaderWriter接口和FilterInputStreamFilterOutputStream. Zum Beispiel:

// 创建一个自定义流转换,将大写字符转换为小写字符
class LowerCaseOutputStream extends FilterOutputStream {

    public LowerCaseOutputStream(OutputStream out) {
        super(out);
    }

    @Override
    public void write(int b) {
        super.write(Character.toLowerCase((char) b));
    }
}

Praktischer Fall

Hier ist ein Beispiel für das Lesen einer Textdatei und das Konvertieren ihres Inhalts in Großbuchstaben:

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();
        }
    }
}

Das obige ist der detaillierte Inhalt vonWie führt der Java-I/O-Stream eine Stream-Konvertierung durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn