Fiz uma função básica como o textread do MATLAB, onde ele pega um arquivo de entrada (só usei txt, mas creio que qualquer um sirva) do formato CSV e o transforma em uma matriz de String (creio que seja possível uma matriz de inteiros, usando o
int variavel = Integer.parseInt(variavelstring); //Passar de String para Inteiro
Coloquei no docs para fins de formatação, o link segue
https://docs.google.com/document/d/1UASiILgvrS7l3-pJXJx10ONhmPX2liWtT1tK-7Gm5ww/edit
package comunicacao;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.StringTokenizer;
/**
*
* @author Raphael F
*/
public class textread {
public String[][] Leitura(String nomeArquivo, int col) throws IOException {//c é o numero de colunas
int lin = numeroLinhas(nomeArquivo);
String[][] tabela = new String[lin+1][col];
try {
//csv file containing data
//create BufferedReader to read csv file
BufferedReader br = new BufferedReader(new FileReader(nomeArquivo));
nomeArquivo = "";
StringTokenizer st = null;
int lineNumber = 0, tokenNumber = 0;
int cont, contt;
//read comma separated file line by line
//for (cont = 0; cont < lin; cont++) {
// for (contt = 0; (nomeArquivo = br.readLine()) != null; contt++) {
while ((nomeArquivo = br.readLine()) != null ) {
//break comma separated line using ","
st = new StringTokenizer(nomeArquivo, ",");
while (tokenNumber<4){
//while (st.hasMoreTokens()) {
int colNumber = 0;
//display csv values
/*System.out.println("Line # " + lineNumber
+ ", Token # " + tokenNumber
+ ", Token : " + st.nextToken());*/
tabela[lineNumber][tokenNumber] = st.nextToken();
tokenNumber++;
}
tokenNumber=0;
lineNumber++;
}
} catch (Exception e) {
System.out.println("Exception while reading csv file: " + e);
}
return tabela;
}
public int numeroLinhas(String filename) throws IOException {
InputStream is = new BufferedInputStream(new FileInputStream(filename));
try {
byte[] c = new byte[1024];
int count = 0;
int readChars = 0;
while ((readChars = is.read(c)) != -1) {
for (int i = 0; i < readChars; ++i) {
if (c[i] == '\n') {
++count;
}
}
}
return count;
} finally {
is.close();
}
}
}
Para acessar a função em outros métodos:
textread lerCSV = new textread();
String resultado[][];
try {
resultado = lerCSV.Leitura("ENDERECO COMPLETO DO ARQUIVO", NUMERO DE COLUNAS);
int cont = 0;
int cont2 = 0;
for (cont = 0; cont < resultado.length; cont++) {
for (cont2 = 0; cont2 < resultado[0].length; cont2++) {
System.out.println("linha" + cont+ "="+ resultado[cont][cont2]);
}
System.out.println("\n");
}
} catch (IOException ex) {
Logger.getLogger(Comunicacao.class.getName()).log(Level.SEVERE, null, ex);
}