問題タブ [inputstream]
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.
blackberry - Blackberryまたはjavameで循環バッファを実装する方法は?
Blackberryの循環バッファをどのようにプログラムできますか?
java - FileInputStream を使用して jar 内の txt ファイルにアクセスするにはどうすればよいですか?
メソッドは認識してgetResourceAsStream()
いますが、ファイルを読み取るパーサーに問題があり、構造全体が a を期待するように実装されてFileInputStream()
おり、getResourceAsStream()
キャストできない入力ストリームが返されます。この状況の簡単な「修正」はありますか?
neural-network - ニューラル ネットワークの入力データの最適化
ウェブページからの広告である画像を検出するアプリを構築しようとしています。それらを検出したら、クライアント側での表示を許可しません。
基本的に、バックプロパゲーション アルゴリズムを使用して、次のデータセットを使用してニューラル ネットワークをトレーニングしています: http://archive.ics.uci.edu/ml/datasets/Internet+Advertisements。
しかし、そのデータセットではありません。属性値が非常に高い。実際、このプロジェクトのメンターの 1 人が、これほど多くの属性を使用してニューラル ネットワークをトレーニングすると、トレーニングに時間がかかると言っていました。入力データセットを最適化する方法はありますか? それとも、それだけ多くの属性を使用する必要がありますか?
java - Java InputStream!=読み取り可能
nextInt()などにjava.util.Scannerを使用していますが、java.lang.Readable(唯一のコンストラクター引数)を使用している限り、すべて正常に機能していました。ただし、代わりにInputStreamを使用するように変更すると、Scanner.nextInt()が返されません。なぜなのかご存知ですか?
InputStreamの私の実装は次のようになります。
コメントでデータを印刷すると、(正しく)「12 \ n」の「1」、「2」、「\ n」などが表示されます。この動作の原因となる、知らないうちにスキャナーへの接続がありますか。 ?
c++ - C++ でストリームを使用して、ファイルの末尾から特定の行数を読み取るにはどうすればよいですか?
Linux でのテール シェル コマンドの実装では、ストリーム入出力を使用して、ファイルの末尾から一定量の行/バイトを読み取る必要があります。誰かがそれを行う方法を提案していますか? ファイルを開いてifstreamコンストラクターにパラメーターを渡す必要があると思いますが、正確にはわかりません。グーグルは何も見つかりませんでした。
java - Byte[]からInputStreamまたはOutputStreamへ
データベーステーブルにblob列があり、Javaプログラムでマッピングとして使用する必要があります。このデータを使用するには、またはbyte[]
に変換する必要があります。しかし、そうすると内部で何が起こるのかわかりません。この変換を行うと何が起こっているのか簡単に説明できますか?InputStream
OutputStream
java - Process.waitFor()、スレッド、およびInputStreams
擬似コードでは、これが私がしていることです:
ただし、processOutputStreamInThread
出力が表示されない場合と表示される場合があります。大まかに言って、このメソッドはBufferedInputStream
コマンドの出力を作成し、それをロガーに送信します。
私が見ているものに基づいて、とによってcommand
供給されるストリームにすべての出力をダンプする必要はないので、ストリームを空にする必要はないと推測しています。getInputStream()
getErrorStream()
私の試験の結果は次の質問です:
(1)java.lang.ProcesswaitFor()
では、実行されたプログラムの出力が返される前に読み取られている必要がありますか?
ドキュメントには次のように記載されています。
Process
このオブジェクトによって表されるプロセスが終了するまで、必要に応じて現在のスレッドを待機させます。サブプロセスがすでに終了している場合、このメソッドはすぐに戻ります。サブプロセスがまだ終了していない場合、呼び出し元のスレッドはサブプロセスが終了するまでブロックされます。
(2)ストリームはどのような条件下で提供されgetInputStream
、getErrorStream
閉じる必要がありますか、および/または自動的に閉じられますか?
ドキュメントには次のように記載されています。
サブプロセスのエラーストリームを取得します。ストリームは、このProcessオブジェクトによって表されるプロセスのエラー出力ストリームからパイプされたデータを取得します。
実装上の注意:入力ストリームをバッファリングすることをお勧めします。
あるユーザーは、自分でストリームを閉じなければならなかったと報告していますが、少なくとも一部の時間は、そうしようとするとストリームがすでに閉じられていることを示す例外が発生します。
編集:に変更さgetOutputStream
れgetInputStream
、現在は上にあります。
解決策:問題は、場合によっては、出力ストリームの処理に使用されるスレッドが、非常に短期間のプロセスが完了するまで実行されず、入力ストリームからデータが得られないことでした。 waitFor
実行されたプログラムの出力を待つことはしませんでした。むしろ、出力が収集される前に、プログラムが実行されて終了しました。
スレッドを使用したのは、標準エラーと標準出力でどれだけの出力が得られるかわからないためです。どちらか一方だけがデータを使用できる場合は、どちらか一方をブロックせずに、両方を同時に処理できるようにしたかったのです。しかし、私のスレッドは実行されたプログラムの出力を一貫して読み取ることができないため、それは解決策ではありません。
私の最終的なコードは次のようになりました。
java - バッファリングされたバックグラウンド InputStream の実装
私は、他のストリームをラップし、バックグラウンド スレッドで先読みするバックグラウンドInputStream
(およびOutputStream
) 実装を作成しました。これにより、主に、解凍されたストリームの処理とは異なるスレッドで解凍/圧縮が行われます。
これはかなり標準的な生産者/消費者モデルです。
これは、データの読み取り、処理、および書き込みを行う単純なプロセスでマルチコア CPU を有効に活用する簡単な方法のように思われ、CPU とディスク リソースの両方をより効率的に使用できます。ZipInputStream
おそらく「効率的」という言葉は最適な言葉ではありませんが、 a から直接読み取り、 aに直接書き込む場合と比較して、使用率が高くなり、私にとってより興味深いのは実行時間を短縮することZipOutputStream
です。
コードを投稿できてうれしいですが、私の質問は、既存の (そしてより頻繁に実行されている) ライブラリですぐに利用できるものを再発明するかどうかです。
編集 - コードを投稿...
のコードをBackgroundInputStream
以下に示します (BackgroundOutputStream
非常によく似ています) が、改善したい点があります。
- バッファを前後に渡すのに一生懸命働いているようです。
- 呼び出し元のコードが への参照を破棄すると
BackgroundInputStream
、 はbackgroundReaderThread
永久に残ります。 - シグナリング
eof
の改善が必要です。 - 例外はフォアグラウンド スレッドに伝播する必要があります。
- 提供された からのスレッドの使用を許可したいと思います
Executor
。 - メソッドはバックグラウンド スレッドに通知する
close()
必要があり、ラップされたストリームはそれから読み取るバックグラウンド スレッドによって所有されている必要があるため、ラップされたストリームを閉じるべきではありません。 - 閉店後に読書などのばかげたことをすることは、適切に対応する必要があります。
java - 非推奨ではないStringBufferInputStreamと同等
LogManager.readConfiguration()
文字列からコンテンツを取得したいInputStreamを必要とする作業を行っています。StringBufferInputStream
廃止されていないものに相当するものはありReaderToInputStreamAdaptor
ますか?
java - Javaでは、InputStreamをバイト配列(byte [])に変換するにはどうすればよいですか?
私のバックグラウンドは.netで、Javaはかなり初めてです。私は会社のJavaチームのためにいくつかの作業を行っていますが、アーキテクトはInputStream(java.io)オブジェクトを受け取るメソッドを実装する必要があります。メソッドの目的を達成するために、それをバイト配列に変換する必要があります。これを行う簡単な方法はありますか?