2016-03-22 22 views
3

私は文字列にコピーしたいDataOutputStreamを持っています。私は新しいByteArrayOutputStreamに設定することでDataOutputStreamを変換するチュートリアルをたくさん見つけましたが、フラッシュするときに送信する文字列を読み込み、DataOutputStreamはソケットを介して出力ストリームに割り当てられています。DataOutputStreamとJavaのStringを比較する

output.writeUTF(input.readLine()); 
output.flush(); 

コンテキストが役に立つならば、私は、サーバーの出力ストリームを読み込み、文字列にそれを比較しようとしています。

+1

さて、そこに出力を書いていますが、読んでいません。あなたはサーバーですか?そしてサーバが "input"の場合、 'readLine()'で読んだばかりの行を印刷してみてください。 – markspace

+0

私はフラッシュがそれを書いていたことを理解します。私はreadline()でどのように読みますか? –

+0

ええと、 "読み込み"は 'input.readLine()'がするものです。 – markspace

答えて

0

flushメソッドはバッファリングされたものの、まだ書き込まれていないものをフラッシュします。

次のコードでは、writeUTFの2回目の呼び出しでブレークポイントを設定します。ファイルシステムに移動すると、作成されたファイルが表示され、 "some string"が含まれます。ブレークポイントをフラッシュすると、コンテンツが既にファイルに書き込まれていることを確認できます。このように

public static void test() throws IOException { 
    File file = new File("/Users/Hervian/tmp/fileWithstrings.txt"); 
    DataOutputStream dos = null; 
    try { 
     dos = new DataOutputStream(new FileOutputStream(file)); 
     dos.writeUTF("some string"); 
     dos.writeUTF("some other string"); 
     dos.flush();//Flushes this data output stream. This forces any buffered output bytes to be written out to the stream. 
    } finally { 
     if (dos!=null) dos.close(); 
    } 
} 

、あなたはDataOutputStreamのオブジェクトからデータを抽出することはできませんが、一例では、我々はコースを外れ、書き込み呼び出しでそれらの文字列を持っている上に。