問題タブ [bufferedreader]

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 投票する
7 に答える
21478 参照

java - javaでIOExceptionをキャッチした後にファイルを閉じるにはどうすればよいですか?

全て、

IOException をキャッチしたときに BufferedReader で開いたファイルが閉じられるようにしようとしていますが、BufferedReader オブジェクトが catch ブロックの範囲外にあるように見えます。

Netbeans は、catch ブロックで「シンボル fileIn が見つかりません」と不平を言っていますが、IOException の場合にリーダーが閉じられるようにしたいと考えています。最初の try/catch 構造の周りに 2 番目の try/catch 構造の醜さなしに、どうすればそれを行うことができますか?

この状況でのベスト プラクティスに関するヒントや指針をいただければ幸いです。

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

java - Java BufferedReader読み取り行のブロック?

HTTPリクエストを作成してから、ここにスケッチされているようにレスポンスを取得したいと思います。

しかし、私の質問は、私が送信する要求が応答を受信するまでに長い時間がかかる場合、上記の呼び出しreader.readLine()で何が起こるかということです。このプロセスはCPU上で実行/実行可能のままですか、それともCPUから取り外され、読み取られるIOがあるときにウェイクアップして再度実行するように通知されますか?

それがCPUに残っている場合、それを降ろして後で通知するために何ができるでしょうか?

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

java - JavaでBufferedReaderreadLine()メソッドをスキップする

たとえば2秒より長くかかる場合、JavaのreadLine()メソッドをスキップする簡単な方法はありますか?

これが私がこの質問をしている文脈です:

Commは私が作成したクラスであり、「in」と呼ばれるBufferedReaderを含むreceiveメソッドは次のとおりです。

プログラムが停止し、入力ストリームが何かを読み取るのを待ってから続行することに気づきました。プログラムがループし続ける必要があるので、これは悪いことです(ループすると、他のすべてのクライアントに行き、入力を求めます)。読み取るものがない場合にreadLine()プロセスをスキップする方法はありますか?

また、私はこれをうまく説明していないと確信しているので、混乱している場合は質問してください。

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

java - インターネットからjsfアプリにtxtファイルをロードするにはどうすればよいですか?

また私です)私には別の問題があります。Web からファイル (たとえば、txt) をロードしたい。マネージド Bean で次のコードを使用しようとしました。

しかし、BufferedReader は現在のページの html コードを返します。ここでマネージド Bean のメソッドを呼び出そうとしています。それは非常に奇妙なことです-私はグーグルで検索しましたが、誰もこの問題を抱えていません.

多分私は何か間違っているかもしれません.net APIを使用せずにファイルをWeb(jsf)アプリにロードする最も簡単な方法があるかもしれません. 何か案は?

助けてくれてどうもありがとう!

更新

おそらくいくつかの jsf コードが役に立つでしょう:

更新 2 : Web (localhost ではない) から別のファイルを取得します。すべて正常に動作します。これについて夢中になって申し訳ありません)))

BalusC が言ったように、私のアプリは URL でファイルを見つけられませんでした: http://localhost:8080/sfront/files/test.txt

ローカルファイルを使用できなかった理由がわかりません。

何か案は?

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

java - StringBufferはストリーム全体を文字列に読み込みません(JAVA / Android)

HttpURLConnectionを使用してWebページのコンテンツを取得するAndroidプログラムを作成しています。私はJavaとAndroidの両方に不慣れです。

問題は次のとおりです。リーダーはページソース全体を読み取りますが、最後の反復では、最後の部分のstringBufferに追加されません。

debbugerを使用して、最後のループ反復で文字列バフが作成されることを確認しましたが、stringBufferはそれを追加しません。

取得したコンテンツを解析する必要があります。文字列を使用するよりも、解析のためにコンテンツを処理するためのより良い方法はありますか?Javaの文字列サイズは、使用可能なヒープサイズによってのみ制限されることを他の多くのサイトで読んだことがあります。私もStringBuilderを試してみました。

何が問題になるのかは誰でも知っています。ところで、コードの改善を提案してください。

ありがとう!

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

java - BufferedReaderとPrintWriterによるデータの永続性?

私は、すべて関連しているいくつかのクラスを持つこの単純なアプリケーションを持っています。のインスタンスが1つしかない、メインの1つがあります。保存して、テキストストリームを使用してロードする必要があります。

私のインストラクターの要件は、ストリームをロードするためのBufferedReaderと、それを保存するためのPrintWriterです。しかし、これも可能ですか?データオブジェクト/クラスをテキストストリームで永続化するには?

シリアル化を使用して、オブジェクトでそれを行う方法を知っています。しかし、テキストストリームを使用してそれをどのように行うべきかわかりません。

提案?

0 投票する
5 に答える
4325 参照

java - BufferedReader を使用した、大きくて継続的に成長するファイルからの読み取り

私が持っているタスクは、非常に大きく、継続的に成長しているファイルを (ある程度効率的に) 1 行ずつ読み取ることです。基本的に私が今やっていることは次のとおりです。

したがって、私の BufferedReader は、読み取るものがさらにあるまで、ファイルの最後でハングします。これはうまく機能しますが、1 つ問題があります。ファイルに書き込むプロセスが行を書き込んでいる最中に readLine が呼び出された場合です。次に、readLine の最初の呼び出しで行の最初のセクションが返され、次の呼び出しで 2 番目のセクションが返されます。しかし、私は本当にこれら 2 つの部分を一緒にする必要があります。完全なセリフが必要です。

より具体的には、次のイベントのインターリーブが発生したときに問題が発生します。

  1. 書き込みプロセスはほとんどの行を書き込みます
  2. readLine() が呼び出されます
  3. 書き込みプロセスはその行を終了し、改行文字を追加します
  4. readLine() が呼び出されます

その結果、各 readLine() は、書き込みプロセスが出力している行全体のセクションを取得します。呼び出されるたびにファイルの最後に到達し、読み取ったものを返すため、期待どおりに動作しています。

したがって、基本的に必要な機能は、readLine の 1 つ前に null を返す BufferedReader です。EOFだけでなく、改行が続くまで行を提供しないもの。したがって、EOF が見つかった場合、その時点までの行は返されず、null が返され、ファイルが書き込まれ、その後に新しい行があると、その行が返されます。

FileReader をより直接的に処理し、本質的に BufferedReader を書き直すことで、おそらくこれを行う大まかな方法​​を実装できますが、これを効率的に行う方法についてはあまり知りません。私の実装はおそらく実際の BufferedReader ほど高速ではなく、読み取るデータがあるときにプログラムの速度が低下するのを避けたいと考えています。

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

java - 文字に対するJavaBufferedReaderアクション?

enter code hereLinuxのデバイスから、16進文字を含み、「^M」で区切られたストリームを読み取っています。デバイスが詳細情報の準備ができているときはいつでも、文字">"を送信します。ストリームは次のようになります。

文字を検出し、その文字に対してアクションを実行する必要があります。">"で区切り、その文字を読み取らせる方法はありますか?

基本的には現在こんな感じです

>別のアクションをトリガーする必要があります。何らかの理由で文字が1つしかない場合は、読み取りバッファーはトリガーされません。私は^Mを否定しています。>何か他のことをする必要があります。

0 投票する
3 に答える
907 参照

java - ">" が含まれている場合、Java BufferedReader が準備完了を報告しない

先ほどこの質問をしようとしましたが、質問がわかりにくかったです。文字に対するJava BufferedReaderアクション?

これが私の問題です..デバイスから読み取るように設定された BufferedReader があります。よく読んでいます。に設定しています

>デバイスにさらにデータを送信するまで、バッファリングされたリーダーは報告しません。問題は、リーダーが含まれ>ている場合、レポートの準備ができていないことです。>さらにデータを入力するまで保持されます。

以下を試しましたが、何も返されません。log.level0() さえ返さない

実際に送信されたデータは次のとおりです。

しかし、BufferedReader は、>より多くのデータが送信されるまで無視し、次のような結果を取得します。

コマンドプロンプトからデバイスの実際のデータを確認すると、期待どおりのものが返されます>。存在します。

BufferedReader は私に>. それ以外の場合、この文字を確認する方法はありますか?

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

java - BufferedReader はどの行が読み取られたかをどのように追跡しますか?

ファイルから行を読み取っていますが、すべての行を読み取った後、while ループの状態が原因で例外が発生すると思います。

... コード...

内部の for ループは数行を読み取る必要があるため、ファイルの最後の行が読み取られると、while が試みreadLine()ますが、ファイル全体が読み取られているため失敗します。では、どのように動作しBufferedReader readLine()、while ループを安全に終了するにはどうすればよいでしょうか?

ありがとう。