Olá pessoal.
Estou com a seguinte duvida com relação à melhor pratica a ser seguida com relação ao codigo a seguir:
Tenho uma classe que é uma especie de Loader de registros de um determinado CSV necessário ao meu sistema comforme abaixo:
package registros;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class CarregaRegistros {
private static ArrayList<Registro> listaderegistros = new ArrayList<Registro>();
public CarregaRegistros(String pathcsv) {
BufferedReader br = null;
try {
File fr = new File(pathcsv);
br = new BufferedReader(new InputStreamReader(new FileInputStream(fr), "ISO-8859-1"));
String linha = "";
while ((linha = br.readLine()) != null) {
String nmcliente = linha.split(";", -1)[0];
String nrdocumento = linha.split(";", -1)[1];
String nrcontrato = linha.split(";", -1)[2];
String nmemail = linha.split(";", -1)[3];
String nrfone01chris = linha.split(";", -1)[4];
String nrfone02 = linha.split(";", -1)[5];
String nrfone03 = linha.split(";", -1)[6];
String nrfone04 = linha.split(";", -1)[7];
String nrfone05 = linha.split(";", -1)[8];
String linha_digitavel = linha.split(";", -1)[9];
String valor_fatura = linha.split(";", -1)[10];
String valor_minimo = linha.split(";", -1)[11];
String dias_atraso = linha.split(";", -1)[12];
listaderegistros.add(new Registro(nmcliente, nrdocumento, nrcontrato, nmemail, nrfone01chris, nrfone02, nrfone03, nrfone04, nrfone05, linha_digitavel, valor_fatura, valor_minimo, dias_atraso));
}
br.close();
} catch (Exception ex) {
System.out.println("Erro ao ler o arquivo CSV.\n)" + ex.getMessage());
}
}
public static ArrayList<Registro> getListaderegistros() {
return listaderegistros;
}
}
e abaixo a maneira como uso essa classe classe:
package amain;
import java.util.ArrayList;
import org.apache.http.util.Asserts;
import registros.CarregaRegistros;
public class TesteMenus {
public static void main(String[] args) {
new CarregaRegistros("C:\\Users\\erdna\\Desktop\\Tribanco_Amig_0402.csv");
}
}
Como podem ver eu apenas dou um
new CarregaRegistros("C:\\Users\\erdna\\Desktop\\Tribanco_Amig_0402.csv");
Como a minha lista de registros é estatica dentro da classe CarregaRegistros e eu só preciso carregar ela no inicio do programa eu fiz desta maneira para quando eu precise acessar um registro desta classe de qualquer outra classe do programa eu faço a chamada do metodo estático CarregaRegistros.getListaderegistros() e terei o array de registros em memoria para buscar o registro que eu precisar.
A duvida é:
Esta certo fazer desta maneira? É certo iniciar uma classe apenas dando um
new CarregaRegistros("C:\\Users\\erdna\\Desktop\\Tribanco_Amig_0402.csv");
Se está errado qua a melhor prática para carregar dados estáticos em memória na inicialiização de um programa.
Desde já obrigado por toda a ajuda.