Olá amigos,
estou fazendo um trabalho para ler um arquivo que possui um layout padrao contendo informações, só que as as mesmas vem fixa sempre na mesma linha e coluna ex.
CODIGO Linha1,Coluna1a6 NOME Linha1, Coluna 7a57
ENDERECO Linha2,Coluna1a60 …
…MODELO…
CNPJ 20091129067951227734 1300M M J DE SOUSA AC204437990013565122736265000000061310039101 AC AC0643 [telefone removido]
FJ201403221747540000000000110120100301 NN M M J DE SOUSA MAURO SISTEMAS 214571 3720101F DO COMERCIO 110 ANDAR 1 CENTRO 650405070643ACEM FRENTE AO DEPOSITO [telefone removido]
qual a classe que pode navegar as linhas e colunas delimitadamente.
Na verdade para ler o arquivo não vai ter segredo. Aqui no GUJ tem um tutorial http://www.guj.com.br/article.show.logic?id=13
O que você vai ter que usar bastante é a manipulação de String (e métodos da classe Wrapper String). Se prepara para consultar bastante a API da String http://java.sun.com/javase/6/docs/api/.
Dentre eles, destacaria o substring(), chartAt, indexOf, etc etc etc
O
o_0
Valeu Jair,
Para ler era o que eu esperava, mas quando for para eu salvar.
Coluna 20 a 30
Linha 1 VAMOS SUPOR QUE NO LUGAR DE M M J DE SOUSA agora seja A F FARIAS como faço para salvar.
Será se vou ter q ficar dando espaço ADOIDADO, rsrsrs.
Abraços
Jair_Rillo_Junior
Para salvar, eu aconselho você ir salvando tudo em uma StringBuilder e no final salvar a linha inteira.
É um trabalho bem chato, mas de certa forma é simples de fazer.
Eu já manipulei vários desses arquivos (remessas de banco) em Java :lol:
E
entanglement
Sim senhor, você tem de completar com espaços. Uma maneira simples de fazer isso é com String.format. Por exemplo, quero completar A J FARIAS de forma que ocupe 40 posições (se forem a menos, põe espaços, e se forem a mais, corta: )
Strings="A J FARIAS";Stringformatada=String.format("%-40.40s",s);// resultado é uma string com 40 posições, completada com espaços
M
marcobiscaro2112
Você poderia criar uma classe que serviria de intermédio entre o arquivo e os objetos do seu sistema (uma espécie de DAO). Essa classe seria responsável pela leitura do arquivo e por disponibilizar os dados lidos em forma de objetos (por exemplo, um método ler que retorna um List). Um método análogo escrever poderia ser feito também.
Felagund
Eu faço assim quando preciso ler um arquivo texto com layout definido
crio uma classe chamado Registro, que contem os campos de cada registro
e uma classe Arquivo que contem um Collection<Registro>
a Classe registro tem um metodo estatico para ler uma linha do arquivo e preencher os campos, a classe Arquivo le o arquivo inteiro e passa cada linha para um registro.