로그를 파일에 기록하고 프로그램을 한 줄씩 읽고 싶습니다. 사용 가능한 방법을 사용하여 InputStream
, 특히 DataInputStream
을 사용해 보았습니다. 그런데 readLine
메서드가 없으므로 BufferedReader
에 랩핑하여 readLine
을 사용하는 것이 좋습니다. 하지만 BufferedReader
을 사용하면 모든 행을 읽지 않고 어떻게 든 한 행을 읽음으로써 멈 춥니 다.현재 쓰여지고있는 java의 로그 파일 읽기.
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()
작동 있지만 사용되지 않으며 자바 설명서에 따라이 BufferedReade
R을 사용하여 말한다. 하지만 reader.readLine()
으로 예상대로 작동하지 않습니다.
또한이 방법을 사용하면 더 나은 Java 방식을 사용할 수 있습니다. 이것이 몇 가지 표준 문제라고 확신합니다. Trailer 클래스에 대한 어딘가를 읽었습니다. 그러나 그것을 테스트 할 수는 없습니다.
예상대로 작동하지 않는 기능은 무엇입니까? – NINCOMPOOP
reader.readLine()을 사용할 때 첫 번째 줄만 읽습니다. – r0b0
'ävailable()'메서드를 사용하지 마십시오. 쓸모가 없습니다. InputStream는 연속적으로 갱신되는 파일을 읽지 않습니다. 스트림의 끝에 도달하면 기본 파일이 업데이트 되더라도 결과를 반환하지 않습니다. – jtahlborn