1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
| public class JdbReader {
// ===========================================================================
// CONSTANTES
// ===========================================================================
// ===========================================================================
// ATTRIBUTS
// ===========================================================================
// ===========================================================================
// METHODES
// ===========================================================================
/**
* Méthode "readData" qui a comme paramètre le chemin d'un
* fichier de production et le sépérateur utilisé dans le fichier csv,
* et qui renvoie une liste de "JdbProd" issus de la classe JdbProd
* @throws IOException
* @throws ParseException
*/
public static List<JdbProd> readData(String pathFile, char separator) throws IOException, ParseException {
//Déclaration d'une liste qui va contenir des données de type "JdbProd"
List<JdbProd> data=new LinkedList<JdbProd> ();
//Variable qui compte le nombre de ligne lus dans le fichier CSV
int size=0;
//Déclaration d'une variable de type fichier
File csvFile = new File (pathFile);
//Utilisation de la librairie open-csv pour lire le fichier CSV passé en paramètre
FileReader fr=new FileReader (csvFile);
CSVReader csvReader=new CSVReader(fr,separator,'\0','\0');
//Initialisation d'un tableau appelé nextLine
String nextLine[] = null;
//On parcourt le fichier tant qu'il n'est pas vide
while((nextLine=csvReader.readNext())!= null)
{
//Instanciation d'un objet
JdbProd jdbProd = new JdbProd ();
//Si ce n'est pas la première ligne, on met dans l'objet --> permet de ne pas prendre en compte l'en-tête des colonnes
if (size!=0)
{
//try
//{
//Conversion d'un String en date:
//Déclaration d'un format de date avec l'heure
SimpleDateFormat formatter=new SimpleDateFormat ("dd/MM/yyyy hh:mm:ss");
//Concaténation de la date et de l'heure de l'inspection
jdbProd.setStartDate (formatter.parse (nextLine[0]+ " " + nextLine[1]));
//Gérer exception due au format de date
//}
//catch (ParseException e)
//{
// e.getStackTrace ();
//}
//On ne gère pas d'exceptions car c'est du String donc même si cellule vide="" c'est considéré comme du String
jdbProd.setArticle (nextLine[4]);
jdbProd.setReport (nextLine[3]);
//On essaye de lire la température du processeur + cas exception
try
{
//Conversion d'un string en double:
jdbProd.setTempCpu(Double.parseDouble(nextLine[7]));
}
catch(NumberFormatException|ArrayIndexOutOfBoundsException e)
{
jdbProd.setTempCpu(0.00); //Valeur nulles par défaut
}
//On essaye de lire la température du système + cas exception
try
{
jdbProd.setTempSystem(Double.parseDouble(nextLine[8]));
}
catch(NumberFormatException |ArrayIndexOutOfBoundsException e)
{
jdbProd.setTempSystem(0.00);
}
//On essaye de lire la donnée vitesse du ventilo + cas exception
try
{
jdbProd.setSpeedFan(Double.parseDouble(nextLine[11]));
}
catch(NumberFormatException |ArrayIndexOutOfBoundsException e)
{
jdbProd.setSpeedFan(0.00);
}
//On essaye de lire le métrage inspectée + cas exception
try
{
jdbProd.setLength (Double.parseDouble(nextLine[20]));
}
catch(NumberFormatException |ArrayIndexOutOfBoundsException e)
{
jdbProd.setLength(0.00);
}
//On essaye de lire la valeur moyenne de l'image + cas exception
try
{
//Convertir des String en Integer:
jdbProd.setImageLevel(Integer.parseInt (nextLine[16]));
}
catch(NumberFormatException |ArrayIndexOutOfBoundsException e)
{
jdbProd.setImageLevel (0); //0 valeur par défaut
}
//On essaye de lire le T.I + cas exception
try
{
jdbProd.setIntegTime(Integer.parseInt (nextLine[17]));
}
catch(NumberFormatException |ArrayIndexOutOfBoundsException e)
{
jdbProd.setIntegTime(0);
}
//On ajoute un élement du type jdbProd
data.add(jdbProd);
}
size+=1; //Incrémentation
}
//On ferme le fichier
csvReader.close();
//La fonction renvoie la liste contenant des données JdbProd
return data;
}
} |
Partager