[解決済み] 出力ストリームに文字列を書き込む
質問
を実装している出力リスナーがいくつかあります。
OutputStream
.
それは
PrintStream
は標準出力やファイルへの書き込み、メモリやその他の出力先への書き込みが可能であるため、ここでは
OutputStream
をメソッドの(引数として)指定します。
今、私が受け取ったのは
String
. ここでストリームに書き込むには、どのような方法があるのでしょうか?
を使用すればよいのでしょうか?
Writer.write(message.getBytes())
? バイトを渡すことはできますが、宛先ストリームが文字ストリームの場合、自動的に変換されるのでしょうか?
この場合、ブリッジストリームを使用する必要があるのでしょうか?
どのように解決するのですか?
ストリーム(
InputStream
と
OutputStream
) 転送
バイナリ
のデータを使用します。文字列をストリームに書き込む場合、まず文字列をバイトに変換する必要があります、つまり
エンコード
となります。これを手動で行うには、(あなたが提案するように)
String.getBytes(Charset)
メソッドを使用するのは避けるべきですが
String.getBytes()
なぜなら、このメソッドはJVMのデフォルトエンコーディングを使用しており、移植可能な方法で確実に予測することができないからです。
しかし、ストリームに文字データを書き込む通常の方法は、ストリームを
Writer
は、(多くの場合
PrintWriter
を呼び出すと、その変換を行います。
write(String)
(または
print(String)
) メソッドを使用します。InputStreamsに対応するラッパーは
リーダー
.
PrintStream
は、特殊な
OutputStream
の実装は、文字列を自動的にエンコードするメソッドも含んでいます (内部でライターを使用しています)。しかし、これはストリームであることに変わりはない。であろうと、ライタでストリームを安全にラップすることができます。
PrintStream
または他のストリーム実装を使用することができます。二重エンコーディングの危険はありません。
PrintWriterとOutputStreamの組み合わせの例です。
try (PrintWriter p = new PrintWriter(new FileOutputStream("output-text.txt", true))) {
p.println("Hello");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
関連
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] Javaで文字列を分割する方法
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] 出力をファイルや標準出力にリダイレクトする方法
-
[解決済み] 文字列からストリームを生成するにはどうすればよいですか?
-
[解決済み] OutputStreamを文字列に変換する
-
[解決済み] Java InputStreamの内容をOutputStreamに書き出す簡単な方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スタイルが読み込まれず、ブラウザのコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。
-
Android Studio 3.1.2 で v4, v7 パッケージが見つからない シンボル 'AppCompatActivity' を解決できない
-
Intellij IDEAのエラー「CreateProcess error=2, system could not find specified file」に対する完璧な解決策です。
-
Methodのinvokeメソッド実装のJavaリフレクション
-
node js npm gruntインストール、elasticsearch-head 5.Xインストール
-
Javaエラーメッセージがenclosingクラスでない
-
Error: java.lang.NoClassDefFoundError: クラス XXXX を初期化できませんでした
-
Exception: java.util.NoSuchElementException: 行が見つかりません
-
JSPで「リストが型解決できない!」の解決方法
-
Google Chromeのエラー「Not allowed to load local resource」の解決策について