Jump to content

Leitura de ficheiros


Andrer757
 Share

Recommended Posts

Boas pessoal,

estou aqui com um pequeno problema, eu tenho um ficheiro de texto com o seguinte formato:

200 3

  3.10575    8.65176 2

  3.60623    7.79335 2

  4.49634  10.16057 2

.........

e precisava de por os doubles num vector bidimencional double[][] referencia = new double[total de linhas do ficheiro][2(porque sao dois doubles por linha)] e de pegar nos inteiros de cada linha e colocar num vector de inteiros sendo que a 1ª linha do ficheiro indica o numero de linhas e o numero de colunas.

O meu problema é que não consigo estrair os dados do ficheiro para os vectores.

isto foi o que fiz apesar de não funcionar:

Scanner file = new Scanner( new FileReader("referencia.dat"));
double[][] referencia = new double[file.nextInt()][2];
file.nextLine();
for (int a = 0;a < referencia.length;a++) {
      for (int b = 0;b < referencia[a].length && file.hasNextDouble();b++)
            referencia[a][b] = file.nextDouble();
      file.nextLine();
}

thanks.

Cumprimentos,

André Rosa

Link to comment
Share on other sites

Scanner file = new Scanner( new FileReader("referencia.dat"));
double[][] referencia = new double[file.nextInt()][2];
for (int a = 0;a < referencia.length;a++) {
      for (int b = 0;b < referencia[a].length && file.hasNextDouble();b++)
            referencia[a][b] = file.nextDouble();
}

Tenta assim acho que interpretas-te mal o scanner ao fazer nextLine ele retorna uma String com a linha.

I haven’t lost my mind; it’s backed up on DVD somewhere!

Link to comment
Share on other sites

Scanner file = new Scanner( new FileReader("referencia.dat"));
double[][] referencia = new double[file.nextInt()][2];
for (int a = 0;a < referencia.length;a++) {
      for (int b = 0;b < referencia[a].length && file.hasNextDouble();b++)
            referencia[a][b] = file.nextDouble();
}

Tenta assim acho que interpretas-te mal o scanner ao fazer nextLine ele retorna uma String com a linha.

Boas com esse código so guarda 3.0 e mais nada.

mas já solucionei o problema assim:

Scanner file1 =  new Scanner( new File 	("referencia.dat"));
int linhas = file1.nextInt();
double[][] referencia = new double[linhas][2];
int[] especieRef = new int[linhas];
file1.nextLine();
for (int a = 0;a < referencia.length;a++) {
      for (int b = 0;b < referencia[a].length && file1.hasNext();b++)
            referencia[a][b] = new Double(file1.next());
      for (int c = 0;c < especieRef.length && file1.hasNextInt();c++)
            especieRef[c] = new Integer(file1.nextInt());
      file1.nextLine();
}

Obrigado na mesma.

Cumprimentos,

André Rosa

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.