Java I/O 스트림 변환은 한 스트림을 다른 스트림으로 변환하여 데이터 형식을 변경합니다. 사전 정의된 스트림 변환: 바이트 스트림과 문자 스트림을 변환하기 위해 BufferedReader, BufferedWriter 및 기타 클래스가 제공됩니다. 사용자 정의 스트림 변환: 특정 요구 사항을 충족하기 위해 Reader/Writer 인터페이스 및 FilterInputStream/FilterOutputStream 클래스를 사용하여 작성되었습니다.
Java I/O 스트림의 스트림 변환
소개
Java I/O 스트림 변환은 한 유형의 스트림을 다른 유형의 스트림으로 변환하는 것을 의미합니다. 이는 데이터를 한 형식에서 다른 형식으로 변환하는 데 필요한 경우가 많습니다. Java는 미리 정의된 다양한 스트림 변환을 제공하며 특정 변환기를 사용하여 사용자 정의 스트림 변환을 작성할 수도 있습니다.
사전 정의된 스트림 변환
Java는 다음을 포함하여 여러 가지 사전 정의된 스트림 변환 클래스를 제공합니다.
사전 정의된 스트림 변환 사용
사전 정의된 스트림 변환을 사용하는 것은 매우 간단합니다. 적절한 생성자를 사용하여 변환 스트림을 생성하고 입력 스트림을 매개변수로 전달하기만 하면 됩니다. 예:
// 将字节流转换为字符流 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 将字符流转换为字节流 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
Custom 스트림 변환
때때로 사전 정의된 스트림 변환이 특정 요구 사항을 충족하지 못하는 경우가 있습니다. 이 경우 사용자 정의 스트림 변환을 작성할 수 있습니다. 이렇게 하려면 Reader
或Writer
接口和FilterInputStream
或FilterOutputStream
클래스를 사용하세요. 예:
// 创建一个自定义流转换,将大写字符转换为小写字符 class LowerCaseOutputStream extends FilterOutputStream { public LowerCaseOutputStream(OutputStream out) { super(out); } @Override public void write(int b) { super.write(Character.toLowerCase((char) b)); } }
실용 사례
다음은 텍스트 파일을 읽고 해당 내용을 대문자로 변환하는 예입니다.
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(); } } }
위 내용은 Java I/O 스트림은 어떻게 스트림 변환을 수행합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!