Olá pessoal, sou novo por aqui apesar de ler os tópicos do fórum há muito tempo.
Estou precisando de uma ajuda. Preciso abrir o conteúdo de um arquivo de números ponto flutuante separados por vírgulas em uma matriz dinâmica, por que não sei o seu tamanho. Então preciso adquirir o conteúdo do arquivo e descobrir o tamanho das linhas e das colunas para instanciar minha matriz, certo?
Estou passando o endereço do arquivo para um [color=red]FileReader[/color] e depois esse como argumento para um [color=red]BufferedReader[/color]. Até aí tudo bem.
Estou pegando o tamanho da linha por um [color=red]readline()[/color] e atribuindo a uma variável inteira de nome linha.
Eu precisava retirar da leitura do arquivo as vírgulas que separam os números para inserí-los sem as vírgulas na matriz para que eu possa trabalhar tranquilamente depois. Tentei atribuir, então, o conteúdo de cada linha sem vírgulas em um vetor por meio da função [color=red]split(",")[/color], mas quando imprimo o conteúdo para ver resulta assim: [color=red] Conteúdo do vetor -> [Ljava.lang.String;@dc840f [/color].
O que estou fazendo de errado?
Vi no fórum uma função chamada [color=red]scanner() [/color], como funciona? Desde já agradeço a todos!
Segue o código fonte:
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
public class Main {
public static void main(String[] args) throws IOException {
int linha = 0, coluna = 0, i = 0, n = 0, m = 0;
String temp, aux, vetor[];
try {
//String matriz[][];
FileReader fr = new FileReader("D:/Facul/8ºPeriodo/TD/Implementacao/iris.data");//Lê o arquivo
BufferedReader br = new BufferedReader(fr); //Responsável por ler arquivo
aux = br.readLine(); //armazenando linha para posterior contagem de tamanho
while ((temp = br.readLine()) != null) {
linha += 1;
vetor = temp.split(",");
System.out.println("Conteúdo do vetor -> " + vetor + "\n"); //Imprimindo o conteúdo do arquivo (linha por linha)
}
br.close();
File arquivoLeitura = new File("D:/Facul/8ºPeriodo/TD/Implementacao/iris.data");
// pega o tamanho
long tamanhoArquivo = arquivoLeitura .length();
FileInputStream fs = new FileInputStream(arquivoLeitura);
DataInputStream in = new DataInputStream(fs);
//System.out.println("Tamanho do arquivo -> "+ arquivoLeitura.length() );
LineNumberReader lineRead = new LineNumberReader(new InputStreamReader(in));
lineRead.skip(tamanhoArquivo);
// conta o numero de linhas do arquivo, começa com zero, por isso subtrai-se 1
linha = lineRead.getLineNumber() -1;
coluna = aux.length();
System.out.println("O ARQUIVO CONTEM " + linha + " LINHAS E "+ coluna + " COLUNAS.");
}
catch (FileNotFoundException e1) {
System.out.println("Não foi possível abrir o arquivo!");
}
}
}
Conteúdo do arquivo:
5.1,3.5,1.4,0.2
4.9,3.0,1.4,0.2
4.7,3.2,1.3,0.2
4.6,3.1,1.5,0.2
5.0,3.6,1.4,0.2
5.4,3.9,1.7,0.4
4.6,3.4,1.4,0.3
5.0,3.4,1.5,0.2
4.4,2.9,1.4,0.2
4.9,3.1,1.5,0.1
5.4,3.7,1.5,0.2
4.8,3.4,1.6,0.2
4.8,3.0,1.4,0.1
4.3,3.0,1.1,0.1
5.8,4.0,1.2,0.2
5.7,4.4,1.5,0.4
5.4,3.9,1.3,0.4
5.1,3.5,1.4,0.3
5.7,3.8,1.7,0.3
5.1,3.8,1.5,0.3
5.4,3.4,1.7,0.2
5.1,3.7,1.5,0.4
4.6,3.6,1.0,0.2
5.1,3.3,1.7,0.5
4.8,3.4,1.9,0.2
5.0,3.0,1.6,0.2
5.0,3.4,1.6,0.4
5.2,3.5,1.5,0.2
5.2,3.4,1.4,0.2
4.7,3.2,1.6,0.2
4.8,3.1,1.6,0.2
5.4,3.4,1.5,0.4
5.2,4.1,1.5,0.1
5.5,4.2,1.4,0.2
4.9,3.1,1.5,0.1
5.0,3.2,1.2,0.2
5.5,3.5,1.3,0.2