Ler um arquivo texto e armazená-lo em um vetor

2 respostas
J
public class Gravar {
//Método que irá gerar os vetor em arquivo texto
//para serem chamados para ordenação
public void randVetor (int [] vet, File file){
try{
BufferedWriter buffer = new BufferedWriter(new FileWriter (file));
for(int i = 0; i < vet.length; i++){
buffer.write(vet[i]+" ");
buffer.newLine();
}
buffer.close();
JOptionPane.showMessageDialog(null,"Arquivo gravado com " +
"sucesso","Concluído",JOptionPane.INFORMATION_MESSAGE);
}catch (IOException e){
JOptionPane.showMessageDialog(null,e.getMessage(),
"Atenção",JOptionPane.WARNING_MESSAGE);
}
}
public static void main(String args[]) throws IOException{
Gravar grava=new Gravar();
File file = new File("RandVetor.txt");
Random rand=new Random();
int vetor[]=new int [2000];
for (int i=0; i<vetor.length; i++){
vetor[i]=rand.nextInt(1000);
}
grava.randVetor(vetor, file);
}

}


Boa tarde, se alguém puder ajudar agradesço: Na classe acima, consigo gravar um vetor preenchido aleatoriamente.
Com a classe abaixo, consigo ler o arquivo. Porém não consigo colocar aos dados em um arrayList ou um array.
Se alguém poder dar uma dica de como posso ler o arquivo txt (que é uma lista com os valores do vetor) e armazená-los
em outro vetor, agradesço.

public class Abrir {
public static void main(String args[]) {
File arquivo = new File("RandVetor.txt");
String linha;
try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(arquivo)));
while (br.ready()) {
linha = br.readLine();
System.out.println(linha);}
br.close(); }
catch (Exception e) {
System.out.println("Erro: " + e.getMessage());
}
}
}

2 Respostas

moacirjava

Quando você for postar algum código, use as tags chamadas Code pra identar melhor seu código e ficar mais fácil para alguém te ajudar, blz?!

Voltando ao seu problema tenta criar uma lista fora do seu try e vê se isso que postei abaixo te ajuda em algo.

List lista = new ArrayList();
try {
  BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(arquivo)));
  while (br.ready()) {
    linha = br.readLine();
    System.out.println(linha);
    lista.add(linha)
  }
  br.close(); 
}
catch (Exception e) {
  System.out.println("Erro: " + e.getMessage());
}
J

Muito obrigado pela dica da formatação. Vi que há um script justamenta para explicar
aos novatos quanto a tais procedimentos, então reeditei o código.

Com relação à tua solução, beleza fiz como sugeriu e funcionou. Consegui imprimir
os dados armazenados no arquivo. Muito obirgado.

Outra dúvida moacirjava, existe alguma forma de ler o arquivo que crie, armazená-lo
em um vetor e passar como argumento para um método de ordenação. Tentei transformar
o arrayList em vetor, mais pesquisando em uma apostila da Caelum, vi que não tem na haver.
Também tentei transformar o argumento do método em arrayList, mais não consegui. O método de
ordenação seria o seguinte:

/*Ordena por inserção*/
public static void insertionSort(int[] array){
    for (int i = 1; i < array.length; i++){
    int a = array[i];
    int j;
	for (j = i - 1; j >= 0 && array[j] > a; j--)
           array[j + 1] = array[j];
	   array[j + 1] = a;}
}
Criado 23 de maio de 2010
Ultima resposta 23 de mai. de 2010
Respostas 2
Participantes 2