【初心者】Java質問・相談スレッド93【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0082デフォルトの名無しさん
2006/10/25(水) 16:59:10(2) Reader から順に文字を char[] へ読み込む(実際にはこの後これをリモートへ転送)
(3) char[] を受け取った側はファイルに書き込む。
と言う処理を行おうとしています。
(3)でファイルを書き込む際、エンコーディングを指定しておかないとまずいように
思うのですが、それは InputSource#getEncoding() の結果と言うことになるのでしょうか?
例を書かせて頂きますと
●local(読み込み)●
char[] buffer = new char[256];
Reader reader = inputSource.getCharacterStream();
for (int n = 0; (n = reader.read(buffer)) != -1; ) {
//...buffer を転送...
}
●remote(書き込み)●
File serverImage = new File("foo");
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(serverImage, true));
//★encoding指定の場合はここに引数追加
writer.write(buffer, 0, length);
※上書きフラグが true になっているのは転送<->書き込みを繰り返して完成させるためです。
目的は、(3)で書き込まれるファイルが、(1)の元々 InputSource が示していたものと
同じイメージであることなのですが、InputSource#getEncoding() は必ずしも
エンコーディングを返してくれるものではないように読めるので、心配しています。
なお、別の都合で InputSource#getByteStream を当てにするのは無理になっています。
うーん、InputSource を理解してない?
■ このスレッドは過去ログ倉庫に格納されています