問題タブ [outputstream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java FilterOutputStreamクラスを適切に拡張する方法は?
ファイルのアップロードの進行状況を大まかに監視したいと思います。MultipartEntityをオーバーライドして、writeTo(OutputStream out)メソッドを、デフォルトのInputStreamをラップするために作成したFilterOutputStreamクラスに書き込むことができることを知っています。私がそれをどのように行ったかの詳細については、ここで私の答えを参照してください。
ただし、詳しく調べると、これは2回送信されたすべてのバイトをカウントします。ドキュメントにアクセスして、何が起きているかを確認しました。FilterOutputStreamのwrite(byte []、int、int)メソッドは、単にFilterOutputStreamのwrite(byte)メソッドをループで呼び出すように見えます。より効率的なメソッドを提供するためにサブクラスをお勧めします。これには、基になるOutputStreamのwrite(byte []、int、int)を呼び出し、基になるOutputStreamがバイトをストリームにプッシュするより良いメソッドを持っていることを期待することが含まれると思います(出力ストリームのドキュメントの推奨サブクラスはこのメソッドをオーバーライドし、より良い仕事をします単にOutputStream#write(byte)メソッドをループするよりも)。
これは私が窮地に陥っているところです。MultipartEntity#writeTo(OutputStream)が常にOutputStream.write(byte []、int、int)の呼び出しになることを保証することはできません。したがって、そこに送信されたバイトを数えると、を使用して送信されたバイトを見逃す可能性があります。 write(byte)メソッド。ただし、OutputStream.write(byte []、int、int)メソッドがwrite(byte)メソッドを呼び出さない可能性があるため、write(byte)メソッドではカウントできません。
1つの答えは、サブクラスのwrite(byte []、int、int)メソッド内でsuper.write(byte []、int、int)を呼び出すことです。次に、これはwrite(byte)メソッドをループして、一度に1バイトずつ書き込むことを知っています。次に、write(byte)メソッド内に書き込まれたすべてのバイトをカウントできます。ただし、これは非効率的であり、ドキュメントはこれに対して直接推奨しています。OutputStreamのサブクラスのいくつかは、一度に複数のバイトをストリームに書き込むことができると確信しているので、その利点を使用しないのはばかげています。
では、FilterOutputStreamを適切にオーバーライドして、効率的であり、送信されたすべてのバイトをカウントするにはどうすればよいですか?
これが長い場合は申し訳ありませんが、誰かが私よりも問題をうまく説明できるように、私はそれをwikiにしました。
java - phpからのjavawriteInt、
ねえ、私はphpでデータ出力ストリームを作成して、プリミティブデータ型をJavaアプリケーションに書き戻そうとしています。
データを配列に書き込むクラスを作成しました(java doと同じように記述し、javaコードからコピーします)
そして最後に、アレイをクライアントに書き戻しています。
うまく機能していないように感じます
たとえば、writeIntメソッドはJavaクライアントにいくつかの間違った値を送信します。
ありがとうございました
これが私のコードです
これは私がメインのphpファイルを設定する方法です
これは私がデータを返す方法です
質問を編集します。Javaクライアント側のコード変更によると、読み取り開始には常に2バイトがあるようです。常に13、10があります。これは、\ r \ nどうしていつも読んでいるのですか?
(私のテストでは、Javaクライアント側に1バイトを送信しています。
java - コレクションの問題を解決するには、助けとアイデアが必要です
今日はすでに質問を投稿しました。この質問は同じプロジェクトに関するものですが、無関係です。レゴ NXT マインドストーム ロボット用のアプリケーションを開発しています。PC で 2 つのロボットと GUI を実行しています。
leJOS NXJ では、1 つの入力リーダーしか使用できません。つまり、PC を 2 台のロボットに直接接続することはできず、2 台のロボットを直接接続させることができません。これが私がやったことです。PC を 2 台のロボットに直接接続し、2 台のロボットが直接通信したい場合は、GUI を介してメッセージを送信します。
GUI とロボットの間だけでなく、ロボット同士の間でも多くの通信が行われます。このため、出力ストリームにデータを書き込むたびに、一部のデータが他のデータによって上書きされ、システムが正常に動作していないように見えます。
コレクション(キュー)オブジェクトを保持するクラスを作成して、ロボットが何かを送信したいときはいつでもそれをコレクション(キュー)に追加し、コレクションオブジェクトを保持するそのクラスから、メソッドを使用して、コレクションを常にチェックし、コレクションが空でない場合は常に、コレクション内のデータを出力ストリームに送信します。
これは、コレクション内のデータが出力ストリームに送信されるたびに、新しいデータが追加される可能性があることを意味します。
ArrayBlockQueue などを使用することを提案した人もいますが、これらのクラスは、ロボットが使用する class.jar ファイルでは使用できません。
この jar ファイルで私が知っているコレクション クラスは、Vectors と Queue です。
そのようなクラスを実装する方法のアイデアを教えてくれる人がいるかどうかを尋ねています。クラスのメソッドは、コレクション内にデータがあるかどうかを時々チェックし、出力ストリームを介してそれらを送信します。を送信している間、新しい要素が追加されている可能性があります。
データはある場所から送信されているため、データが他の場所を上書きすることはありません。私には良い考えに思えます。
すべての提案を歓迎します。
ありがとう。
c - cですべての出力テキストをキャッチする方法
これは私の問題です。私は C のプロジェクトのユニット テスト クラスに取り組んでいます。ユニット テスト クラスはうまく機能しますが、テストしているメソッドの 1 つが API からメソッドを呼び出して、ハードウェアと通信します。ハードウェアのクローズド オフ ソフトウェアが原因で、テストの実行中にハードウェアを実行できるようにする方法は実際にはありません。
これらの呼び出しは、ハードウェアに送信される単なる char* メッセージであり、テストを実行すると、「API と通信できませんでした」というメッセージが大量に出力されます。これは、API 側での何らかのエラー チェックであると想定しています。
私の質問は、きれいな出力のために、この場合、端末に送られるすべてのテキストをキャッチ、抑制、またはチェックする方法はありますか?(それは出力ストリームですよね?私はCにかなり慣れていません)
java - Scala ソケットは出力ストリームに書き込めません
私はscalaの世界では初めてなので、些細な質問を許してください。:)ポートとサンドへのソケットを開き、メッセージを受信したいだけです。HELO を受信した場合、メッセージで応答したいのですが、ソケットに書き込むことができません。受信接続をリッスンするために nc を使用しました。
クライアントが接続されたら、私は書きます
netcat で、しかし、クライアントは応答を送信しません。
ここに私のscalaコードがあります:
受信は問題なく動作し、アクターは着信メッセージに反応しますが、書き込みは行われません。私は何かを監視しているだけですか、それとも私のコードが outputSteam に送信するのに間違っていますか?
コンソール ウィンドウからの出力は次のとおりです。
c++ - C 形式の I/O 関数 (printf、sprintf など) は IOStream よりも人気がありますか? もしそうなら、その理由は?
私は最近、他の人が作成した多くのコードを調べていて、たまたま誰もが「printf」スタイルの C 関数をよく使用していることに気付きましたが、学校で学んだ C++ 関数 (具体的には cout) はあまり人気がないようです。
これは有効な観察であり、これには理由がありますか? 大会?
ありがとう、
R
jquery - zipファイルを返すhttphandlerへのjQuery ajax呼び出し
zip ファイルを作成してダウンロード用に返す httphandler があります。
context.Response.AppendHeader("content-disposition", "attachment; filename=myfile.zip");
jquery ajax呼び出しからハンドラーを呼び出すことは可能ですか? はいの場合、どの種類の dataType を宣言する必要がありますか?
ありがとう
java - イメージを ByteBuffer としてサーブレットに送信できますか?
Androidフォンをサーブレットに接続して、特定の画像を送信しようとしています。私がこれを行うと考えた方法は、copyPixelsToBuffer()関数を使用してから、出力ストリームを介してこれをサーブレットに送信しようとすることです (通常のスタンドアロン Java アプリケーションで行う方法と同様です)。この方法は機能しますか?もしそうなら、どのようなストリームを正確に使用しますか? DataOutputStream を使用するだけで、次のようなことを行う必要があります。
注: これは、Android OS を使用してサーバーに接続する適切な方法ではない可能性があることを理解していますが、現時点では、接続ではなく画像を送信する方法に取り組んでいます (これが画像の状態に関連している場合を除きます)。送信済)。
これが画像をサーブレットに送信する方法としてお勧めできない場合 (バイト バッファーが最適だと思いましたが、間違っている可能性があります)、どのように行うことをお勧めしますか?
java - PipedOutputStream がデッドロックするのはなぜですか?
PipedInputStream と PipedOutputStream を使用してスレッド化された循環バッファーを実装しようとしていますが、Decoder ランナブルで mHead.write に到達すると毎回ロックされます。別のスレッドを使用すると、デッドロックが発生する可能性はないと思いました。
編集:これが私のサービスの完全なソースですhttp://pastie.org/1179792
logcat が出力します:
読んで
みる 書いてみる
c - この単純なプログラムのしくみ、I/O関連
これは私のプログラムです:
そしてこれは出力です:
3行目と4行目の両方が空白行になっているのはなぜですか?文字'\n'は出力バッファをフラッシュし、後で破棄されませんか?