English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 가이드

Java 프로세스 제어

Java 배열

Java 대상 지향(I)

Java 대상 지향(II)

Java 대상 지향(III)

Java 예외 처리

Java 리스트(List)

Java 큐(큐)

Java 맵 셋

Java Set集合

Java 입력/출력(I/O)

Java Reader/Writer

Java 다른 주제

Java OutputStreamWriter 클래스

이 튜토리얼에서는 예제를 통해 Java OutputStreamWriter 및 메서드를 배웁니다.

java.io 패키지의 OutputStreamWriter 클래스는 문자 데이터를 바이트 데이터로 변환할 수 있습니다.

추상 클래스 Writer를 상속합니다.

OutputStreamWriter 클래스는 다른 출력 스트림과 함께 사용될 수 있습니다. 이는 OutputStreamWriter가 문자를 바이트로 변환하기 때문입니다. 이로 인해 이 클래스는 바이트 스트림과 문자 스트림 간의 다리로 불립니다.

예를 들어, 일부 문자는2바이트를 저장합니다. 이러한 데이터를 기록하려면, 문자를 해당 바이트로 변환하여 저장하는 출력 스트림 작성자를 사용할 수 있습니다.

创建一个OutputStreamWriter

OutputStreamWriter를 생성하기 위해 먼저 java.io.OutputStreamWriter 패키지를 가져와야 합니다. 패키지를 가져온 후, 여기서 출력 스트림 작성자를 생성할 수 있습니다.

//OutputStream을 생성합니다
FileOutputStream file = new FileOutputStream(String path);
//创建一个OutputStreamWriter
OutputStreamWriter output = new OutputStreamWriter(file);

위의 예시에서는 output 이름의 OutputStreamWriter와 FileOutputStream 파일을 생성했습니다.

여기서는 기본 문자 인코딩을 사용하여 문자를 출력 스트림에 기록합니다.

하지만, 데이터를 기록하기 위한 문자 인코딩 유형을 지정할 수 있습니다 (UTF8또는UTF16)

//문자 인코딩을 지정하여 OutputStreamWriter를 생성합니다
OutputStreamWriter output = new OutputStreamWriter(file, Charset cs);

여기서는 Charset 클래스를 사용하여 문자 인코딩 유형을 지정합니다。

OutputStreamWriter 메서드

OutputStreamWriter 클래스는 Writer 클래스에서 등장하는 다양한 메서드를 구현합니다。

write() 메서드

  • write() -작성자에 한 문자를 기록합니다

  • write(char[] array) - 지정된 배열의 문자를 작성자에 기록합니다

  • write(String data) - 지정된 문자열을 작성자에 기록합니다

예시: OutputStreamWriter는 데이터를 파일에 기록합니다

writer를 닫습니다
문자열을 파일에 쓰기
public class Main {
  public static void main(String args[]) {
    String data = "This is a line of text inside the file.";
    위의 예제에서는 파일 출력 스트림을 사용하여 출력 스트림 레더를 생성했습니다. 출력 스트림 레더는
      // 创建 FileOutputStream
      OutputStreamWriter output = new OutputStreamWriter(file);
      //创建一个OutputStreamWriter
      OutputStreamWriter output = new OutputStreamWriter(file);
      //将字符串写入文件
      output.write(data);
      //关闭 writer
      output.close();
    }
    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

在上面的示例中,我们使用文件输出流创建了一个输出流读取器。输出流阅读器与public class Main {文件链接。

OutputStreamWriter output = new OutputStreamWriter(file);
OutputStreamWriter output = new OutputStreamWriter(file);

public class Main {public static void main(String args[]) {

String data = "This is a line of text inside the file.";

FileOutputStream를 생성합니다

OutputStreamWriter를 생성합니다

문자열을 파일에 쓰기
output.write(data);
writer를 닫습니다
output.close();
  catch(Exception e) {
    위의 예제에서는 파일 출력 스트림을 사용하여 출력 스트림 레더를 생성했습니다. 출력 스트림 레더는
      // 파일 연결.
      OutputStreamWriter output = new OutputStreamWriter(file);
      // 
      파일에 다음 내용을 채우겠습니다.1 프로그램을 실행할 때,
      // output.txt
      파일에 다음 내용을 채우겠습니다.2 This is a line of text inside the file.8
      // 데이터를 출력 스트림에 기록하는 인코딩 유형을 얻을 수 있습니다. 예를 들어,
      System.out.println("output1의 문자编码: " + output1.getEncoding());
      System.out.println("output2의 문자编码: " + output2.getEncoding());
      // 파일을 닫습니다
      output1.close();
      output2.close();
    }
    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

출력 결과

output1의 문자 encoding: Cp1252
output2의 문자 encoding: UTF8

위의 예제에서는2개의 출력 스트림 작성자를 생성했습니다. 각각의 이름은 output1와 output2.

  • output1문자 encoding을 지정하지 않았습니다. 따라서 getEncoding() 메서드는 기본 문자 encoding을 반환합니다.

  • output2지정된 문자 encodingUTF8따라서 getEncoding() 메서드는 지정된 문자编码을 반환합니다.

주의:Charset.forName() 메서드를 사용하여 문자编码 유형을 지정했습니다.

close() 메서드

출력 스트림 작성자를 닫으려면 close() 메서드를 사용할 수 있습니다. close() 메서드를 호출하면 작성자에 데이터를 입력할 수 없게 됩니다.

OutputStreamWriter 다른 메서드

메서드설명
flush()写入자에 존재하는 모든 데이터를 강제로 적절한 목적지에 쓰기
append()지정된 문자를 현재 작성자에 삽입하십시오