0

BufferedReader入力ストリームを読み取るために をインスタンス化しました。ready()リーダーが読み取れるまで false を返すbooleanメソッドがあります。今私が持っています

BufferedReader br = new BufferedReader(new InputStreamReader(myProcess.getInputStream()));
try {
  while (!br.ready()) {
  }
  String line = br.readLine();
  ...
} catch (IOException e) {
...

PMDが私に警告するのは空のwhileブロックであり、PMDは正しいと思います。コードを書き直すにはどうすればよいですか?

4

3 に答える 3

5

を使用したくありませんready()readLine()ブロッキングコールです。コールするだけです。

BufferedReader の標準的な使用法は次のとおりです。

String line = null;
while((line = br.readLine) != null) {
  // do stuff with line here ...
}
于 2013-04-30T14:41:53.340 に答える
1

これを試すことができます:

BufferedReader br = new BufferedReader(new InputStreamReader(myProcess.getInputStream()));
try {
   String line;
   while ( null != (line = br.readLine() )) {
      ...
   }
   ...
 } catch (IOException e) { ... }
于 2013-04-30T14:41:13.227 に答える
-1

書き換える方法は、

while(!br.ready());

しかし、これを行うより読みやすい方法は、バッファの準備ができたときにのみ読み取ることです

while(br.ready()){
   String line = br.readLine();
   ...
}
于 2013-04-30T14:42:19.760 に答える