Java: abrindo e lendo de um arquivo sem bloqueá-lo
Eu preciso ser capaz de imitar 'tail -f' com Java. Estou tentando ler um arquivo de log enquanto ele está sendo gravado por outro processo, mas quando abro o arquivo para lê-lo, ele bloqueia o arquivo e o outro processo não pode mais gravá-lo. Qualquer ajuda seria muito apreciada!
Aqui está o código que estou usando atualmente:
public void read(){
Scanner fp = null;
try{
fp = new Scanner(new FileReader(this.filename));
fp.useDelimiter("\n");
}catch(java.io.FileNotFoundException e){
System.out.println("java.io.FileNotFoundException e");
}
while(true){
if(fp.hasNext()){
this.parse(fp.next());
}
}
}