Time out em BufferedReader

Galera tenho o seguinte codigo abaixo.

                in = new BufferedReader(new InputStreamReader(s.getInputStream()));
                while ((letra = in.readLine()) != null) {
                    writer.write(letra);
                    writer.flush();
                    //System.out.println((char)aux+"="+aux);
                }

Alguem poderia me ajudar, gostaria de colocar um timeout neste processo, onde se ficar um tempo sem receber nada seja fechado o bufferedreader.

Caso chegue alguma coisa a contagem é reinciada, então somente sairia se fica-se um determinado tempo sem receber nada.

Obrigado!