OutputStreamWriter는 문자 스트림을 바이트 스트림으로 변환하는 데 유용한 java.io 클래스의 클래스입니다. 문자를 바이트로 변환하는 작업은 지정된 문자 세트 인코딩을 사용하여 수행됩니다. 여기에는 인코딩 변환기를 호출하여 문자를 바이트 스트림으로 변환하는 write() 메서드가 포함되어 있으며, 여기서 결과 바이트는 버퍼로 전송되어 누적되어 출력 스트림으로 전송됩니다. 문자가 버퍼링되지 않고 write() 메소드에 전달되므로 변환기 호출이 자주 발생하므로 BufferedWriter와 함께 사용됩니다.
무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
구문:
public class OutputStreamWriter extends Writer
이 구문은 프로젝트의 어느 곳에서나 인스턴스화할 수 있음을 의미하는 공개 클래스임을 나타냅니다. 이 클래스는 문자 스트림에 쓰기를 다루는 추상 클래스인 Writer 클래스의 직접적인 하위 클래스입니다.
OutputStreamWriter 클래스의 인스턴스를 생성하려면 다음과 같은 4가지 유형의 생성자가 있습니다.
이 생성자는 기본 문자 인코딩을 사용하여 OutputStreamWriter의 인스턴스를 반환합니다. 이것이 인스턴스를 생성하는 가장 간단한 방법입니다.
예:
FileOutputStream fileObj = new FileOutputStream (String path); //
OutputStream의 인스턴스입니다.
OutputStreamWriter output = new OutputStreamWriter (fileObj);//
위 인스턴스는 출력을 작성해야 하는 파일을 지정하기 위해 인수로 전달됩니다.
이 생성자는 지정된 Charset을 사용하는 OutputStreamWriter의 인스턴스를 반환합니다. 여기에 지정된 문자 세트는 Charset.forName("UTF8")과 같을 수 있으며 메소드에 대한 인수로 문자 세트의 인스턴스를 생성합니다.
예:
OutputStreamWriter output = new OutputStreamWriter (fileObj,Charset.forName ( "UTF8"));
이 생성자는 지정된 Charset 인코더를 사용하는 OutputStreamWriter의 인스턴스를 반환합니다.
예:
CharsetEncoderencoder = B2CConverter.UTF_8.newEncoder () OutputStreamWriter output = new OutputStreamWriter (fileObj, encoder);
이 생성자는 지정된 Charset 이름을 사용하는 OutputStreamWriter의 인스턴스를 반환합니다.
예:
OutputStreamWriter output = new OutputStreamWriter (fileObj,"UTF-8");
여기서 문자 스트림을 바이트 스트림으로 변환하는데 사용되는 charset Name은 "UTF-8"입니다.
1. close ():- 이 메서드는 스트림을 플러시한 후 스트림을 닫는 데 도움이 됩니다. 매개변수가 필요하지 않으며 이 메서드에서는 아무것도 반환되지 않습니다.
구문
public void close ()
2. 플러시 ():- 이 메소드는 스트림을 플러시하는 데 도움이 됩니다. 매개변수가 필요하지 않으며 이 메소드에서는 아무것도 반환되지 않습니다.
구문
public void flush ()
3. getEncoding ():- 이 메소드는 주어진 OutputStreamWriter 인스턴스에서 사용되는 문자 세트 인코딩의 이름을 검색하는 데 도움이 됩니다. 메소드를 호출하는 동안 매개변수를 전달할 필요가 없습니다.
구문
public String getEncoding ()
인스턴스에서 사용 중인 인코딩 이름의 문자열 표현이 반환됩니다.
4. write (char[] charbuf, int off, int len):- 이 메서드는 오프셋 위치에서 시작하고 길이가 'len'인 문자 배열의 특정 부분을 쓰는 데 도움이 됩니다. 이 메서드는 다음과 같은 경우 IOException을 발생시킵니다. 제공된 모든 입력이 올바르지 않거나 null입니다.
구문
public void write (char[] charbuf, int off, int len)
이 방법은 변환된 바이트 스트림을 출력 파일에 기록합니다. 아무것도 반환하지 않습니다.
5. write (int ch):- 이 메소드는 ASCII 문자를 지정하는 스트림에 단일 문자를 쓰는 데 사용됩니다. 입력이 올바르지 않거나 null인 경우 이 메서드는 IOException을 발생시킵니다.
구문
public void write (int ch)
이 방법은 변환된 바이트 스트림을 출력 파일에 기록합니다. 아무것도 반환하지 않습니다.
6. write(String str, int off, int len):- 이 메소드는 주어진 오프셋과 주어진 길이로 시작하는 문자열의 일부를 스트림에 쓰는 데 사용됩니다.
Syntax
public void write (String strObj, int offset, int lgth)
This method just writes the converted byte stream to the output file. It does not return anything.
Below the examples of Java OutputStreamWriter:
import java.io.*; public class StreamDemo { public static void main (String[] args) { String data = "LetsLearnOuptputStreamClass"; try { OutputStream file = new FileOutputStream ("abc.txt"); OutputStreamWriter outObj = new OutputStreamWriter (file); FileInputStream inFileObj = new FileInputStream ("abc.txt"); outObj.write (data, 5, 6); outObj.flush (); System.out.println ( "Name of Encoding used here is : " + outObj.getEncoding ()); for (int i = 0; i<6; i++) { System.out.println ( "Character written is : " + (char) inFileObj.read()); } outObj.close (); } catch (Exception ex) { System.out.println ( "Error Occurred"); ex.printStackTrace (); } } }
Output:
import java.io.*; public class StreamDemo { public static void main (String[] args) { try { OutputStream g = new FileOutputStream ( "C:/Users/savij/Desktop/abc.txt"); OutputStreamWriter outObj = new OutputStreamWriter (g); FileInputStream in = new FileInputStream ( "C:/Users/savij/Desktop/abc.txt"); outObj.write (69); outObj.write (68); outObj.write (85); outObj.write (67); outObj.write (66); outObj.write (65); outObj.flush (); for (int i = 0; i< 6; i++) { System.out.println ( "The char being written: " + (char) in.read()); } outObj.close (); } catch (Exception ex) { System.out.println ( "Error"); ex.printStackTrace (); } } }
Output:
//package Proc; import java.io.*; public class StreamDemo { public static void main (String[] args) { char[] data = {'E','D','U','C','B','A'}; try { OutputStream file = new FileOutputStream ( "abc.txt"); OutputStreamWriter outObj = new OutputStreamWriter (file); FileInputStream inFileObj = new FileInputStream ( "abc.txt"); outObj.write (data,2, 4); outObj.flush (); for (int i = 0; i<4; i++) { System.out.println ( "Character written is : " + (char) inFileObj.read()); } outObj.close (); } catch (Exception ex) { System.out.println ( "Error Occurred"); ex.printStackTrace (); } } }
Output:
OutputStreamWriter is a utility that acts as a bridge from the character stream to a byte stream. It contains a write method that takes input in the form of characters and converts them into bytes using the specified charset or charset encoder for e.g., UTF-8. This class’s efficiency and performance can be enhanced if BufferredWriter is being used instead of Writer to write the resultant byte stream to the output streams.
위 내용은 자바 OutputStreamWriter의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!