Bom dia pessoal, estou fazendo um curso pela a UDEMY e estou com dificuldade para fazer o exercício proposto pelo professor que consiste em pegar arquivos .csv e instanciar um produto em uma lista.
código
package application;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Scanner;
import model.entities.Product;
public class Program {
public static void main(String[] args)
{
Locale.setDefault(Locale.US);
List<Product> list = new ArrayList();
Scanner sc = new Scanner(System.in);
System.out.print("Enter folder path: ");
String strPath = sc.nextLine();
File file = new File(strPath);
String sourceFileStr = file.getParent();
try(BufferedReader br = new BufferedReader(new FileReader(sourceFileStr)))
{
String productFile = br.readLine();
while(productFile != null)
{
String[] productInfo = productFile.split(",");
String name = productInfo[0];
double price = Double.parseDouble(productInfo[1]);
int quantity = Integer.parseInt(productInfo[2]);
list.add(new Product(name, price, quantity));
}
}
catch (IOException e)
{
System.out.println("Error:" + e.getMessage());
}
}
}
Existem ferramentas que, a partir de uma configuração (em geral, um arquivo xml), varrem o código fonte do projeto (e o projeto) e identificam elementos que estão em desacordo com as boas práticas de programação (SOLID, KISS, clean code, etc).
Existem vários, uns mais abrangentes, outros menos. Um dos mais conhecidos é o sonarqube.
Essas ferramentas auxiliam no processo de desenvolvimento, uma vez que indicam pontos em que os programadores falham (nomes de classes, atributos, métodos. Quantidade de parâmetros por método, quantidade de linhas num método, quantidade de linhas em uma classe, atribuição de valores nulos, lançamento de exceções e uma infinidade de outras regras que, seguidas a risca, deixam o código mais legível e profissional)
darlan_machado é isso mesmo, muito obrigado.
Meu professor de matemática vivia dizendo leitura e interpretação… Eu preciso melhor isso.
O exercício pedia apenas um arquivo .csv para leitura, eu estava fazendo 3, por isso botei a o diretório não o arquivo .csv.
Para ler os arquivos eu teria que sempre colocar o destino do caminho? não teria como eu passar o diretório e ele pegar todos os arquivos .csv?
Para isso, você precisaria instanciar o diretório como um file e validar se o mesmo é um diretório (invocando o método isDirectory da classe File).
Então, você pega a lista de arquivos dentro dele, através do método listFiles da classe File.