[RESOLVIDO] Leitura de arquivo texto com delimitador
6 respostas
C
cristianoassis
Olá Pessoal,
Estou precisando ler o arquivo abaixo e estou tentando utilizar a função scanner. Consigo ler o aquivo na boa, mas ele não esta respeitando o delimitador que é o “|”. A separação esta ficando em cada célula. O que estou fazendo de errado?
Tenta fazer um teste retirando o delimitador “|” do ínicio e do final de cada linha.
mmaico
Olá,
Você tem que escapar a barra, use assim : scanner.useDelimiter("\|");
abraço!
C
cristianoassis
Blz mmaico,
Era isso mesmo.Obrigado.
Mas agora surgiu o seguinte problema. Tenho as duas linhas no arquivo. Na primeira linha, como a última posição esta sem informação, a função scanner não a considera gerando somente 4 elementos na lista ao passo que na segunda linha é identificado 5 elementos. Como posso fazer para que na primeira linha seja identificado 5 elementos e não 4 ?
|0110|1|2|1||
|0110|1|2|1|200|
Obrigado.
mmaico
Olá cristianoassis,
Altere o seu delimeter, o scanner suporta regex para fazer o match.
scanner.useDelimiter("([^0-9]|^ )");
falows!!!
C
cristianoassis
Mais eu preciso manter a “\|”, pois eu tenho linhas assim também |C001|1|2||Antonio Gomes| . Como posso manter os dois limitadores ?
Obrigado!
C
cristianoassis
Resolvido!!
Encontrei esse código que funcionou blz !
Obrigado !
BufferedReaderStrR=newBufferedReader(newFileReader("C:/Projetos/Arquivo.txt"));StringStr;String[]TableLine;//Essa estrutura do looping while é clássica para ler cada linha//do arquivo while((Str=StrR.readLine())!=null){//Aqui usamos o método split que divide a linha lida em um array de String//passando como parametro o divisor .TableLine=Str.split("\\|");//O foreach é usadao para imprimir cada célula do array de String.for(Stringcell:TableLine){System.out.print(cell+" ");}System.out.println("\n");}//Fechamos o bufferStrR.close();