>  기사  >  Java  >  Java I/O 스트림은 어떻게 스트림 변환을 수행합니까?

Java I/O 스트림은 어떻게 스트림 변환을 수행합니까?

WBOY
WBOY원래의
2024-04-13 11:45:01582검색

Java I/O 스트림 변환은 한 스트림을 다른 스트림으로 변환하여 데이터 형식을 변경합니다. 사전 정의된 스트림 변환: 바이트 스트림과 문자 스트림을 변환하기 위해 BufferedReader, BufferedWriter 및 기타 클래스가 제공됩니다. 사용자 정의 스트림 변환: 특정 요구 사항을 충족하기 위해 Reader/Writer 인터페이스 및 FilterInputStream/FilterOutputStream 클래스를 사용하여 작성되었습니다.

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

Java I/O 스트림의 스트림 변환

소개

Java I/O 스트림 변환은 한 유형의 스트림을 다른 유형의 스트림으로 변환하는 것을 의미합니다. 이는 데이터를 한 형식에서 다른 형식으로 변환하는 데 필요한 경우가 많습니다. Java는 미리 정의된 다양한 스트림 변환을 제공하며 특정 변환기를 사용하여 사용자 정의 스트림 변환을 작성할 수도 있습니다.

사전 정의된 스트림 변환

Java는 다음을 포함하여 여러 가지 사전 정의된 스트림 변환 클래스를 제공합니다.

  • BufferedReader: 바이트 스트림을 문자 스트림으로 변환합니다.
  • BufferedWriter: 문자 스트림을 바이트 스트림으로 변환합니다.
  • DataInputStream: 바이트 스트림을 데이터 입력 스트림으로 변환합니다.
  • DataOutputStream: 데이터 출력 스트림을 바이트 스트림으로 변환합니다.
  • ObjectInputStream: 바이트 스트림을 객체 입력 스트림으로 변환합니다.
  • ObjectOutputStream: 객체 출력 스트림을 바이트 스트림으로 변환합니다.

사전 정의된 스트림 변환 사용

사전 정의된 스트림 변환을 사용하는 것은 매우 간단합니다. 적절한 생성자를 사용하여 변환 스트림을 생성하고 입력 스트림을 매개변수로 전달하기만 하면 됩니다. 예:

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

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

Custom 스트림 변환

때때로 사전 정의된 스트림 변환이 특정 요구 사항을 충족하지 못하는 경우가 있습니다. 이 경우 사용자 정의 스트림 변환을 작성할 수 있습니다. 이렇게 하려면 ReaderWriter接口和FilterInputStreamFilterOutputStream 클래스를 사용하세요. 예:

// 创建一个自定义流转换,将大写字符转换为小写字符
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.