Gestion de fichiers .csv
TheCorsican
Messages postés
1
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Je sui actuellement en train de faire un projet dans lequel je compare une base de données contenant les mêmes données en format Neo4J (NoSQL) et en format MySQL. Je dispose déjà de la base de données sous Neo4J, elle est remplie à partir de fichiers .csv qui ont étés créés pour correspondre à ses tables.
Le schéma relationnel contient des tables qui sont différentes de celles de Neo4J, j'ai donc besoin de modifier les fichiers csv existants pour qu'ils correspondent aux tables MySQL.
J'ai tout d'abord pensé à modifier ça manuellement mais c'est beaucoup trop long.
Quelqu'un aurait il une idée de script java que je puisse utiliser pour faire ça ?
(Concrètement je veux déplacer des colonnes de fichiers .csv dans un nouveau fichier)
Merci d'avance
Je sui actuellement en train de faire un projet dans lequel je compare une base de données contenant les mêmes données en format Neo4J (NoSQL) et en format MySQL. Je dispose déjà de la base de données sous Neo4J, elle est remplie à partir de fichiers .csv qui ont étés créés pour correspondre à ses tables.
Le schéma relationnel contient des tables qui sont différentes de celles de Neo4J, j'ai donc besoin de modifier les fichiers csv existants pour qu'ils correspondent aux tables MySQL.
J'ai tout d'abord pensé à modifier ça manuellement mais c'est beaucoup trop long.
Quelqu'un aurait il une idée de script java que je puisse utiliser pour faire ça ?
(Concrètement je veux déplacer des colonnes de fichiers .csv dans un nouveau fichier)
Merci d'avance
Configuration: Windows / Chrome 70.0.3538.102
A voir également:
- Gestion de fichiers .csv
- Gestion de fichiers - Télécharger - Gestion de fichiers
- Renommer des fichiers en masse - Guide
- Explorateur de fichiers - Guide
- Logiciel gestion photo gratuit - Guide
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
Exemple :
public static void main(String[] args) throws IOException { File src1 = new File("C:/test/src1.csv"); File src2 = new File("C:/test/src2.csv"); File dest = new File("C:/test/dest.csv"); Csv.write(dest, // Csv.column(src1, 0), // 1A Csv.column(src2, 1), // 2B Csv.column(src2, 0), // 2A Csv.column(src1, 1), // 1B Csv.column(src1, 2), // 1C Csv.column(src2, 2));// 2C }import java.io.*; import java.util.*; public final class Csv { private Csv() {} public static final class Column { private final File srcFile; private final int srcColumn; private Column(File srcFile, int srcColumn) { this.srcFile = srcFile.getAbsoluteFile(); this.srcColumn = srcColumn; } } public static Column column(File srcFile, int srcColumn) { return new Column(srcFile, srcColumn); } public static void write(File dstFile, Column... columns) throws IOException { Map<File, Scanner> scanners = new HashMap<>(); try (PrintWriter pw = new PrintWriter(dstFile)) { for (Column column : columns) { if (!scanners.containsKey(column.srcFile)) { scanners.put(column.srcFile, new Scanner(column.srcFile)); } } while (true) { Map<File, String[]> tabs = new HashMap<>(); boolean hasNext = false; for (Map.Entry<File, Scanner> entry : scanners.entrySet()) { Scanner scanner = entry.getValue(); if (scanner.hasNext()) { hasNext = true; tabs.put(entry.getKey(), scanner.next().split(";")); } } if (!hasNext) break; for (int i = 0; i < columns.length; i++) { if (i != 0) pw.print(";"); Column column = columns[i]; String[] tab = tabs.get(column.srcFile); if (tab != null && tab.length > column.srcColumn) { pw.print(tab[column.srcColumn]); } } pw.println(); } } finally { for (Scanner scanner : scanners.values()) { scanner.close(); } } } }