Home >Java >javaTutorial >How does Java I/O stream perform stream conversion?
Java I/O stream conversion converts one stream to another stream to change the data format. Predefined stream conversion: BufferedReader, BufferedWriter and other classes are provided to convert byte streams and character streams. Custom stream conversion: written using Reader/Writer interface and FilterInputStream/FilterOutputStream class to meet specific needs.
Stream conversion of Java I/O streams
Introduction
Java I /O stream conversion refers to converting one type of stream into another type of stream. This is often necessary to convert data from one format to another. Java provides a variety of predefined stream transformations, and you can also write custom stream transformations using specific converters.
Predefined stream conversion
Java provides several predefined stream conversion classes, including:
Using predefined stream transformations
Using predefined stream transformations is very simple. Just create the transformation stream using the appropriate constructor and pass the input stream as a parameter. For example:
// 将字节流转换为字符流 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 将字符流转换为字节流 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
Custom stream transformation
Sometimes, the predefined stream transformations cannot meet specific needs. In this case, you can write a custom stream transformation. To do this, you need to use the Reader
or Writer
interface and the FilterInputStream
or FilterOutputStream
class. For example:
// 创建一个自定义流转换,将大写字符转换为小写字符 class LowerCaseOutputStream extends FilterOutputStream { public LowerCaseOutputStream(OutputStream out) { super(out); } @Override public void write(int b) { super.write(Character.toLowerCase((char) b)); } }
Practical case
The following is an example of reading a text file and converting its contents to uppercase characters:
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(); } } }
The above is the detailed content of How does Java I/O stream perform stream conversion?. For more information, please follow other related articles on the PHP Chinese website!