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());
        }           
    }       
}

questionAnswers(4)

yourAnswerToTheQuestion