Java OutputStreamWriter

PHPz
リリース: 2024-08-30 16:08:05
オリジナル
1096 人が閲覧しました

OutputStreamWriter は、文字ストリームをバイト ストリームに変換するのに役立つ java.io クラスのクラスです。文字からバイトへのこの変換は、指定された文字セット エンコーディングを使用して行われます。これには、エンコーディング コンバータを呼び出して文字をバイト ストリームに変換する write () メソッドが含まれており、その結果のバイトはバッファに送信され、そこで蓄積されて出力ストリームに送信されます。文字はバッファリングされずに write () メソッドに渡されるため、頻繁にコンバーターが呼び出され、BufferedWriter で使用されます。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

構文:

public class OutputStreamWriter extends Writer
ログイン後にコピー

この構文は、これがパブリック クラスであることを示しており、プロジェクト内のどこからでもインスタンス化できることを意味します。このクラスは、文字ストリームへの書き込みを処理する抽象クラスである Writer クラスの直接のサブクラスです。

OutputStreamWriter は Java でどのように動作しますか?

  • 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");
ログイン後にコピー

ここでは、文字ストリームをバイトストリームに変換するために使用される文字セット名は「UTF-8」です。

メソッド

1. close ():- このメソッドは、ストリームをフラッシュした後にストリームを閉じるのに役立ちます。パラメータは必要なく、このメソッドからは何も返されません。

構文

public void close ()
ログイン後にコピー

2. flash ():- このメソッドはストリームのフラッシュに役立ちます。パラメータは必要なく、このメソッドからは何も返されません。

構文

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:

Java 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:

Java 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:

Java 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.

以上がJava OutputStreamWriterの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート