Tente / tente e tente novamente ... O bloqueio existe por um motivo. Se o arquivo ainda está sendo escrito, você não quer lê-lo. Mesmo se você puder, haverá pelo menos um caso em que seu código Java pensa que leu todo o arquivo quando a geração de CSV ainda não foi concluída.
Na verdade, seu código é perigoso, o arquivo é provavelmente fechado entre dois comandos shell que o anexam, portanto, seu código Java pode abrir e bloquear o arquivo para si mesmo enquanto o script de shell é executado.
Portanto, inicie o código Java quando o arquivo estiver totalmente gerado ou, se o código Java estiver assistindo ao arquivo, gere o arquivo com um nome temporário e renomeie para o nome esperado depois de concluído.