> Java > java지도 시간 > 자바 OutputStreamWriter

자바 OutputStreamWriter

PHPz
풀어 주다: 2024-08-30 16:08:05
원래의
1092명이 탐색했습니다.

OutputStreamWriter는 문자 스트림을 바이트 스트림으로 변환하는 데 유용한 java.io 클래스의 클래스입니다. 문자를 바이트로 변환하는 작업은 지정된 문자 세트 인코딩을 사용하여 수행됩니다. 여기에는 인코딩 변환기를 호출하여 문자를 바이트 스트림으로 변환하는 write() 메서드가 포함되어 있으며, 여기서 결과 바이트는 버퍼로 전송되어 누적되어 출력 스트림으로 전송됩니다. 문자가 버퍼링되지 않고 write() 메소드에 전달되므로 변환기 호출이 자주 발생하므로 BufferedWriter와 함께 사용됩니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

구문:

public class OutputStreamWriter extends Writer
로그인 후 복사

이 구문은 프로젝트의 어느 곳에서나 인스턴스화할 수 있음을 의미하는 공개 클래스임을 나타냅니다. 이 클래스는 문자 스트림에 쓰기를 다루는 추상 클래스인 Writer 클래스의 직접적인 하위 클래스입니다.

Java에서 OutputStreamWriter가 어떻게 작동하나요?

  • OutputStreamWriter 클래스는 출력 스트림에 쓰는 데 도움이 되는 Writer 클래스의 직접적인 하위 클래스입니다. 이 클래스는 문자 스트림의 각 문자를 바이트 스트림으로 변환하여 문자 스트림과 바이트 스트림 사이의 브리지 역할을 합니다.
  • 이 변환에서는 쓰기 메소드에 인수로 전달된 UTF-8 등과 같은 인코더의 지정된 문자 세트를 사용합니다. write 메소드에 전달되는 문자는 버퍼링되지 않으므로 출력 바이트 스트림은 출력 스트림에 쓰기 전에 버퍼링됩니다.
  • 애플리케이션 성능을 최적화하고 변환기를 자주 호출하지 않으려면 BufferedWriter와 함께 사용하는 것이 좋습니다.

건축자

OutputStreamWriter 클래스의 인스턴스를 생성하려면 다음과 같은 4가지 유형의 생성자가 있습니다.

1. OutputStreamWriter(OutputStream 출력)

이 생성자는 기본 문자 인코딩을 사용하여 OutputStreamWriter의 인스턴스를 반환합니다. 이것이 인스턴스를 생성하는 가장 간단한 방법입니다.

예:

FileOutputStream fileObj = new FileOutputStream (String path); //
로그인 후 복사

OutputStream의 인스턴스입니다.

OutputStreamWriter output = new OutputStreamWriter (fileObj);//
로그인 후 복사

위 인스턴스는 출력을 작성해야 하는 파일을 지정하기 위해 인수로 전달됩니다.

2. OutputStreamWriter(OutputStream 출력, CharsetcsObj)

이 생성자는 지정된 Charset을 사용하는 OutputStreamWriter의 인스턴스를 반환합니다. 여기에 지정된 문자 세트는 Charset.forName("UTF8")과 같을 수 있으며 메소드에 대한 인수로 문자 세트의 인스턴스를 생성합니다.

예:

OutputStreamWriter output = new OutputStreamWriter (fileObj,Charset.forName ( "UTF8"));
로그인 후 복사

3. OutputStreamWriter(OutputStream 출력, CharsetEncoder enc)

이 생성자는 지정된 Charset 인코더를 사용하는 OutputStreamWriter의 인스턴스를 반환합니다.

예:

CharsetEncoderencoder = B2CConverter.UTF_8.newEncoder ()
OutputStreamWriter output = new OutputStreamWriter (fileObj, encoder);
로그인 후 복사

4. OutputStreamWriter(OutputStream 출력, StringcsName)

이 생성자는 지정된 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.

Examples

Below the examples of Java OutputStreamWriter:

Example 1

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:

자바 OutputStreamWriter

Example 2

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:

자바 OutputStreamWriter

Example 3

//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

Conclusion – Java OutputStreamWriter

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿