Não entendi exatamente o motivo e usar um TXT para representar o seu Mapa. Mas tudo bem. Pelo que eu entendi o seu TXT nada mais é do que um “layout” ou um “gabarito” onde cada posição representa um objeto específico. A estrutura seria mais ou menos assim:
1 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V |
2 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V |
Seu arquivo .txt deverá serguir um padrão, por exemplo, onde cada elemento é separado por “,” e a linha é finalizada por “;”. Portanto o txt ficaria assim:
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V;
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V;
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V;
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V;
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V;
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V;
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V;
Neste caso, eu acredito que a forma mais simpes(e braçal) e comum de fazer isso seria utilizano o famoso .split() do java.
[code]public void processaMapaTxt(File mapaTxt) throws Exception {
String linha = null;
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(txt_erp));
// Uma sugestão de como validar se o arquio realmente é .txt
if (!txt_erp.getName().endsWith(".txt")) {
throw new Exception("O arquivo " + txt_erp.getName()
+ " não é do tipo .txt. Favor informar novamente.");
}
String vetor_linha[] = null;
while ((linha = br.readLine()) != null) {
//primeiro a linha
vetor_linha = linha.split(";");
//Aqui fica sua lógica de como tranformar seus dados em novos objetos
if(vetor_linha[0]){
//objeto tal
}
if(vetor_linha[1]){
//objeto tal
}
.
.
.
//e por ai vai....
}[/code]
Mas repito, essa não é a melhor forma de fazer isso e a lógica tem que ser melhorada. Minha intenção foi dar uma luz somente.
Outra coisa, eu não compilei esse código!!! Pode ser que tenha algo errado de sintaxe e etc…
![:smiley: :smiley:](//www.guj.com.br/images/emoji/twitter/smiley.png?v=5)