L'exemple de cet article décrit comment exporter des fichiers CSV à l'aide des génériques et de la réflexion Java. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :
Il est nécessaire dans le projet d'exporter les données sous forme de fichier CSV, car différentes classes ont des attributs différents. Afin de simplifier le code, j'ai appliqué les génériques et la réflexion de Java et j'ai écrit une fonction pour compléter la fonction d'exportation.
Copiez le code comme suit : public <T> void saveFile(List<T> list, String outFile) throws IOException {
if (list == null || list.isEmpty()) {
retour;
}
si (StringUtils.isEmpty(outFile)) {
throw new IllegalArgumentException("outfile is null");
}
booléen isFirst = vrai ;
BufferedWriter out = null ;
essayer {
out = nouveau BufferedWriter(nouveau FileWriter(outFile));
pour (T t : liste) {
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
Classe clazz = (Classe) t.getClass();
Field[] fs = clazz.getDeclaredFields();
pour (int i = 0; i < fs.length; i++) {
Champ f = fs[i] ;
f.setAccessible(true);
essayer {
si (estPremier) {
sb1.append(f.getName());
sb1.append(",");
}
Objet val = f.get(t);
si (val == nul) {
sb2.append("");
} autre {
sb2.append(val.toString());
}
sb2.append(",");
} catch (IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
}
si (estPremier) {
out.write(sb1.toString());
estPremier = faux ;
out.newLine();
}
out.write(sb2.toString());
out.newLine();
}
} catch (IOException e1) {
lancer e1 ;
} enfin {
essayer {
si (out != null) {
out.close();
}
} catch (IOException e2) {
lancez e2 ;
}
}
}
J'espère que cet article sera utile à la programmation Java de chacun.