問題タブ [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.

0 投票する
21 に答える
254215 参照

c++ - Enter キーが押されるのを待たずに、標準入力から文字をキャプチャします。

めったに出てこないので、どうやってこれをしたのか思い出せません。しかし、C または C++ で、改行を待たずに標準入力から文字を読み取る最良の方法は何ですか (Enter キーを押します)。

また、理想的には、入力文字を画面にエコーしません。コンソール画面に影響を与えずにキーストロークをキャプチャしたいだけです。

0 投票する
1 に答える
1135 参照

asp.net - 大きなファイルをアップロードするときに InputStream を使用できるのはいつですか?

大きなファイルをアップロードするとき、PostedFile.InputStream はいつ利用できますか?

Stream を別のプロセスに渡したいのですが、大きなファイルがアップロードされている場合は、ファイル システムに書き込むことなく Stream をその新しいプロセスに直接渡すことができることを願っています。プロセスやアップロードには時間がかかる可能性があるため、すぐに InputStream の読み取りを開始できるかどうか、またはファイル全体がサーバーに転送されるまで待たなければ処理できないかどうかを考えています。

より一般的な質問は、ファイルのアップロードが関係する場合の POST リクエストのライフサイクルは何ですか?

0 投票する
2 に答える
2928 参照

java - mark() & reset() をサポートする軽量の java.io.InputStream 実装

良い一日、

現在、リセット可能な InputStream に ByteArrayInputStream を使用しています。私の問題は、大量のメモリを消費することです (他の InputStream 実装とは異なり、メモリに表示されるすべてのバイトをロードします)。

私の質問は、mark() と read() をサポートする InputStream の軽量な実装はありますか?

commons-ioでも検索してみましたが、見当たりません。

ありがとう、フランツ

0 投票する
4 に答える
4846 参照

java - Javaで一度に1ページずつpdfアップロードストリームを読む

j2ee アプリケーションで PDF ドキュメントを読み込もうとしています。

Web アプリケーションの場合、pdf ドキュメントをディスクに保存する必要があります。検索を簡単にするために、文書内のテキストの逆索引を作成したいと考えています。OCRの場合。

PDFbox ライブラリを使用すると、pdf ファイル全体を含む pdfDocument オブジェクトを作成できます。ただし、メモリを保持して全体的なパフォーマンスを向上させるには、ドキュメントをストリームとして処理し、一度に 1 ページずつバッファーに読み込みます。

PDFを含むファイルストリームをページごと、または一度に1行ずつ読み取ることができるのだろうか。

0 投票する
1 に答える
3122 参照

java - AndroidInputStreamインターネット切断

私のAndroidプログラムには、ファイルをダウンロードするコードがあります。これは問題なく動作しますが、携帯電話ではいつでも切断できるため、途中で誰かが電話をかけたり、携帯電話の受信を失ったりしたときに、再接続してダウンロードを再開するように変更する必要があります。InputStreamが機能しなくなったことを検出する方法がわかりません。以下のコードを参照してください。

インターネット接続が失われると、ログに次のように表示されます。

そして、私のプログラムはしばらくの間ハングします((len1=など。インターネットが切断されたときにインターネットが再び接続されるのを待ってからダウンロードを再開するようにする必要があります。

0 投票する
2 に答える
2651 参照

java - InputStreamを監視するための最良の方法は何ですか?

apache.commons.FtpClientを介してファイルを読み込んでいます。

これは99.9%の確率で正常に機能しますが、read()メソッドで停止することがあります...

私の質問は、このシステムの無期限のロックを防ぐための最も信頼できる方法は何ですか。別のスレッドでタイマーを設定する必要がありますか?それとも、それを行うためのより簡単な方法はありますか?

0 投票する
7 に答える
100490 参照

java - Java InputStream ブロッキング読み取り

Java api によると、次のInputStream.read()ように記述されています。

ストリームの終わりに達したために使用できるバイトがない場合は、値 -1 が返されます。このメソッドは、入力データが利用可能になるか、ストリームの終わりが検出されるか、例外がスローされるまでブロックされます。

読み取りを行うwhile(true)ループがあり、ストリームを介して何も送信されていない場合は常に -1 になります。それは予想されます。

私の質問は、 read() がブロックされるのはいつですか? データを取得しない場合は -1 を返します。データが受信されるまでブロッキング読み取りが待機することを期待します。入力ストリームの最後に到達した場合、read() は -1 を返すのではなく、単にデータを待つべきではありませんか?

または、ストリームにアクセスする別のスレッドがあり、read() がストリームにアクセスできない場合にのみ read() がブロックされますか?


それが私の次の質問につながります。以前は、データが利用可能になったときに通知するイベント リスナー (ライブラリによって提供される) を使用していました。通知を受けたときwhile((aByte = read()) > -1)、ストアをバイトと呼びました。非常に近い時間に 2 つのイベントを取得し、すべてのデータが表示されていないことに戸惑いました。2 番目のイベントのデータの末尾のみが表示され、残りが欠落しているように見えました。

最終的にコードを変更して、呼び出したイベントが発生したときにif(inputStream.available() > 0) while((aByte = read()) > -1)バイトを格納するようにしました。今では正常に機能し、すべてのデータが表示されました。

誰かがこの動作を説明できますか? はInputStream.available()、(ストリームの) 次の呼び出し元をブロックする前に読み取ることができるバイト数を返すと言われています。.available() を使用しない場合でも、最初のイベントの読み取りが 2 番目のイベントの読み取りをブロックするだけで、大量のストリーム データを消去したり消費したりしないと予想されます。これを行うと、すべてのデータが表示されないのはなぜですか?

0 投票する
6 に答える
1514 参照

java - 永続性とXMLに関するInputStreamを使用するための最良の方法

POSTリクエストをリッスンしてクライアントからXMLペイロードを取得し、最初にInputStreamとして保存するREST Webサービスがあります。つまり、getStream()を呼び出すことができるRepresentationオブジェクトに保存します。

InputStreamに保持されているXMLを利用したいのですが、それを永続化するのが賢明だと思い始めているので、データを何度も問い合わせることができます。一度読み取ると、オブジェクトはnullになります。そこで、InputStreamを文字列に変換することを考えました。javax.xml.parsersライブラリのDocumentBuilder.parse()は以下を渡すことしかできないため、これはお勧めできません。

  • InputStreams
  • ファイル
  • URL
  • SAX入力ソース

文字列ではありません。

XMLを解析することに関して、InputStreamsで実際に何をすべきですか?念頭に置いて、コードによって将来のプロセスでそのXMLを再問い合わせしたいと思います。

0 投票する
4 に答える
7648 参照

java - javaのinputstream.close()がブロックされるのはなぜですか?

私の Java プログラムは ProcessBuilder (redirectErrorStream を true に設定) を使用し、ブロックしているプロセスの入力ストリームの read メソッドを実行するループを持っています。私が呼び出している外部プログラムは、入力と標準入力の待機を停止します。私は今、プロセスを殺したいと思っています。これは、(別のスレッドで) プロセスの destroy メソッドを呼び出し、入力ストリームの close メソッドを呼び出して read メソッドのブロックを停止し、最初のスレッドが寿命を尽くすようにすることによって行われませんか?

なぜかprocess.getInputStream().close()ブロック。JavaDoc から、なぜこれが起こるのかわかりません。さらに、javadoc に「InputStream の close メソッドは何もしない」と記載されている理由がわかりません。( javadoc へのリンク) 誰か説明してくれませんか?

ありがとう :-)

0 投票する
6 に答える
210661 参照

java - ファイルを InputStream としてロードするさまざまな方法

次の違いは何ですか:

それぞれが他のものよりも使用するのに適しているのはいつですか?

読み取りたいファイルは、ファイルを読み取るクラスとしてクラスパスにあります。私のクラスとファイルは同じ jar にあり、EAR ファイルにパッケージ化され、WebSphere 6.1 にデプロイされています。