Olá pessoal, em minha aplicação (trecho abaixo), leio os dados de um arquivo txt com 4 colunas e várias linhas, armazeno-os em um string e depois os transforme em double para plotar em um grafico... Bom, uso o metodo readLine(), mas queria que ele não lesse a primeira linha i.e., começasse da segunda linha ...
Alguém tem um dica? Muito obrigado ...
for(intL=1;L<200;L++){linha=bf.readLine(); // bf é um BufferedReaderSystem.out.println(linha);//elemento=linha.split("[\\s]+");elemento=linha.split("\\,");coluna1=Double.parseDouble(elemento[0]);coluna2=Double.parseDouble(elemento[1]);//coluna3=Double.parseDouble(elemento[2]);//coluna4=Double.parseDouble(elemento[4]);series1.add(coluna1,coluna2);}
dataset.addSeries(series1);
Pegue a primeira linha, leia-a e jogue o resultado fora.
R
rpimenta
Olá Thingol
Tudo bem, o programa já está lendo, mas como faço para jogar a linha fora?
Acho que deveria fazê-lo quando mando o programa separar por , (linha.split("\,") ou quando mando adicionar as colunas em series1 (mandando ele nao adicionar as duas primeiras) mas não estou conseguindo …
Valeu
kaique
Cara, não sei se eu entendi direito, mas se você está querendo simplesmente jogar fora o conteúdo da primeira linha lida, por que você simplesmente não faz uma chamada ao método readLine() e não guarda o resultado?
Tipo assim:
bf.readLine(); // acrescente essa linha de códigofor(intL=1;L<200;L++){linha=bf.readLine(); // bf é um BufferedReaderSystem.out.println(linha);//elemento=linha.split("[\\s]+");elemento=linha.split("\\,");coluna1=Double.parseDouble(elemento[0]);coluna2=Double.parseDouble(elemento[1]);//coluna3=Double.parseDouble(elemento[2]);//coluna4=Double.parseDouble(elemento[4]);series1.add(coluna1,coluna2);}
dataset.addSeries(series1);
Dá um toque aí depois…
[]'s.
R
rpimenta
Olá kaique, o que eu estava querendo era justamente isso: jogar a 1a linha fora . Sua dica funcionou sim, mas, para falar a verdade não entendi porque … Valeu, vc me ajudou bastante, tava há um tempão tentando fazer isso…
Abraçoes
kaique
Cara, to chutando aqui uma resposta, mas o que deve acontecer é que essa classe, BufferedReader, deve ter um controle interno de quantos bytes foram lidos. Quando você manda ler uma linha, acho que ele vai lendo bytes até encontrar a sequência “\r\n”. Nesse momento ele tem guardado a quantidade de bytes já lidos, aí quando você chama novamente o readLine(), a classe começa a ler os bytes de onde parou…
Deu pra entender ou me enrolei demais? hehehe