Heim >Java >javaLernprogramm >Wie führt der Java-I/O-Stream eine Stream-Konvertierung durch?
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.
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:
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 Reader
或Writer
接口和FilterInputStream
或FilterOutputStream
. 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!