ログをファイルに書き込むプログラムを実行していて、それを 1 行ずつ読みたいと思っています。InputStream
、特にDataInputStream
、その利用可能な方法を使用してみました。しかし、それにはreadLine
メソッドがなく、非推奨であり、BufferedReader
使用するためにラップすることが提案されましたreadLine
。しかし、私がBufferedReader
それを使用すると、すべての行を読み取るのではなく、どういうわけか1行の読み取りで停止します。
public void read(DataInputStream ins) {
try {
while(true) {
if(ins.available() > 0) {
//BufferedReader reader = new BufferedReader(new InputStreamReader(ins));
//System.out.println(reader.readLine());
System.out.println(ins.readLine());
}
else {
Thread.sleep(200);
}
}
}
catch(Exception e) {
e.printStackTrace();
}
}
そのため、コードは で動作しますins.readLine()
が、非推奨であり、Java のドキュメントによると、BufferedReade
r. しかし、それではreader.readLine()
期待どおりに機能しません。
また、これは標準的な問題であると確信しているため、これを行うための他のより良い Java の方法はありますか。Trailer クラスについてどこかで読みました。しかし、それをテストすることはできません。