Java OutputStreamWriter クラス
Java OutputStreamWriter クラス
このチュートリアルでは、例を使用して Java OutputStreamWriter とそのメソッドについて学習します。
OutputStreamWriter
java.io
のクラス パッケージを使用して、文字形式のデータをバイト形式のデータに変換できます。
抽象クラス Writer
を拡張します .
OutputStreamWriter
クラスは他の出力ストリームで動作します。これは、バイト ストリームと文字ストリーム間のブリッジとしても知られています。これは OutputStreamWriter
その文字をバイトに変換します。
たとえば、一部の文字では、ストレージに格納するために 2 バイトが必要です。このようなデータを書き込むには、文字を対応するバイトに変換し、バイトをまとめて格納する出力ストリーム ライターを使用できます。
OutputStreamWriter を作成する
OutputStreamWriter
を作成するには 、 java.io.OutputStreamWriter
をインポートする必要があります 最初にパッケージ。ここでパッケージをインポートしたら、出力ストリーム ライターを作成する方法を説明します。
// Creates an OutputStream
FileOutputStream file = new FileOutputStream(String path);
// Creates an OutputStreamWriter
OutputStreamWriter output = new OutputStreamWriter(file);
上記の例では、OutputStreamWriter
を作成しました。 名前付き出力と FileOutputStream
名前付きファイル。
ここでは、出力ストリームに文字を書き込むためにデフォルトの文字エンコーディングを使用しています。
ただし、文字エンコーディングのタイプ (UTF8) を指定できます。 または UTF16 ) を使用してデータを書き込みます。
// Creates an OutputStreamWriter specifying the character encoding
OutputStreamWriter output = new OutputStreamWriter(file, Charset cs);
ここでは、Charset
を使用しました。 文字エンコーディングのタイプを指定するクラス。
OutputStreamWriter のメソッド
OutputStreamWriter
クラスは、Writer
に存在するさまざまなメソッドの実装を提供します クラス。
write() メソッド
write()
- 単一の文字をライターに書き込みますwrite(char[] array)
- 指定された配列の文字をライターに書き込みますwrite(String data)
- 指定された文字列をライターに書き込みます
例:データをファイルに書き込む OutputStreamWriter
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String args[]) {
String data = "This is a line of text inside the file.";
try {
// Creates a FileOutputStream
FileOutputStream file = new FileOutputStream("output.txt");
// Creates an OutputStreamWriter
OutputStreamWriter output = new OutputStreamWriter(file);
// Writes string to the file
output.write(data);
// Closes the writer
output.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}
上記の例では、ファイル出力ストリームを使用して出力ストリーム リーダーを作成しました。出力ストリーム リーダーは output.txt にリンクされています ファイル。
FileOutputStream file = new FileOutputStream("output.txt");
OutputStreamWriter output = new OutputStreamWriter(file);
ファイルにデータを書き込むために、 write()
を使用しました メソッド。
ここで、プログラムを実行すると、output.txt ファイルには次の内容が含まれています。
This is a line of text inside the file.
getEncoding() メソッド
getEncoding()
メソッドを使用して、データを出力ストリームに書き込むために使用されるエンコーディングのタイプを取得できます。たとえば、
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.io.FileOutputStream;
class Main {
public static void main(String[] args) {
try {
// Creates an output stream
FileOutputStream file = new FileOutputStream("output.txt");
// Creates an output stream reader with default encoding
OutputStreamWriter output1 = new OutputStreamWriter(file);
// Creates an output stream reader specifying the encoding
OutputStreamWriter output2 = new OutputStreamWriter(file, Charset.forName("UTF8"));
// Returns the character encoding of the output stream
System.out.println("Character encoding of output1: " + output1.getEncoding());
System.out.println("Character encoding of output2: " + output2.getEncoding());
// Closes the reader
output1.close();
output2.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
出力
The character encoding of output1: Cp1252 The character encoding of output2: UTF8
上記の例では、output1 という名前の 2 つの出力ストリーム ライターを作成しました。 および output2 .
- 出力1 文字エンコーディングを指定しません。したがって、
getEncoding()
メソッドはデフォルトの文字エンコーディングを返します。 - output2 文字エンコード UTF8 を指定します .したがって、
getEncoding()
メソッドは、指定された文字エンコーディングを返します。
注意 :Charset.forName()
を使用しました 文字エンコーディングの種類を指定するメソッド。詳細については、Java Charset (公式の Java ドキュメント) を参照してください。
close() メソッド
出力ストリーム ライターを閉じるには、close()
を使用できます。 方法。一度 close()
メソッドが呼び出されると、ライターを使用してデータを書き込むことはできません。
OutputStreamWriter のその他のメソッド
メソッド | 説明 |
---|---|
flush() | ライターに存在するすべてのデータを対応する宛先に強制的に書き込みます |
append() | 指定された文字を現在のライターに挿入します |
詳細については、Java OutputStreamWriter (公式の Java ドキュメント) にアクセスしてください。
Java