Mapear layout de arquivo

Olá a todos, tenho que ler um arquivo onde cada campo nas linhas tem uma posição fixa, por exemplo o campo A esta entre os caracteres 20 e 30 da linha. Hoje em dia isso esta no codigo mas se algum dia ele layout mudar teria que mudar todo o codigo de leitura de arquivo.
Alguem teria alguma ideia (ou existe alguma solução pronta) de como mapear o layout de um arquivo para que ele não fique no codigo?

Valeu.

Uma altenativa é integrar o seu aplicativo com uma linguagem de Script, como o Groovy, e deixar a lógica do parser num script não compilado. Se o arquivo mudar, você só muda o script e pronto.
http://groovy.codehaus.org

Outra alternativa é usar o antlr (lembra as aulas de compiladores? E você que achou que isso não serviria para nada… :lol: ) e deixar a gramática do parser num arquivo externo.
http://www.antlr.org/
Um exemplo de uso do antlr está nesse editor de textos opensource:
http://www.guj.com.br/posts/list/48736.java

Finalmente, você pode fazer o parser com expressões regulares (java.util.regex), e deixar as expressões num arquivo externo também.
Tudo vai depender do quão flexível você quer esse parser. Alguns exemplos de expressões regulares aqui:
http://www.exampledepot.com/egs/java.util.regex/pkg.html