Récupérer contenu de liste trié dans un tableau

Fermé
AHop Messages postés 22 Date d'inscription jeudi 18 mai 2017 Statut Membre Dernière intervention 24 mai 2017 - 21 mai 2017 à 15:10
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 4 juin 2017 à 02:14
Bonjour,

j'ai utilisé ce code pour trié une liste des demandes d'un fichier txt et je veux récupérer cette liste dans un tableau ou un liste chaîné . voici le code et le fichier txt qui contient la liste des demandes



public class ConCsv
{
    List<> books = new ArrayList<>();

  public static void main(String[] args) throws Exception
  {
    Class.forName("org.relique.jdbc.csv.CsvDriver");

    
    Properties props = new Properties();
    props.put("fileExtension", ".txt");

    Connection conn = DriverManager.getConnection("jdbc:relique:csv:C:\\csv", props);

    
    Statement stmt = conn.createStatement();

    ResultSet results = stmt.executeQuery("select * from csv order by eo");

   
    boolean append = true;
    CsvDriver.writeToCsv(results, System.out, append);
    

    conn.close();
  }
}



id,origin,destination,capacite,eo,Em,DTM,DTD,lo,ed,ld
1,V1,v1+n,2,2012-6-24_18:4:00,00:10,01:00,00:45,2012-06-24_18:14,2012-06-24_18:49,2012-06-24_19:14
2,V2,v2+n,4,2012-6-24_18:6:00,00:17,01:00,00:40,2012-06-24_18:23,2012-06-24_18:46,2012-06-24_19:23
3,V3,v3+n,2,2012-6-24_18:3:00,00:25,00:45,00:30,2012-06-24_18:28,2012-06-24_18:33,2012-06-24_19:13
4,V4,v4+n,4,2012-6-24_14:49:00,00:17,01:00,00:40,2012-06-24_15:06,2012-06-24_15:29,2012-06-24_16:06
5,V5,v5+n,5,2012-6-24_14:59:00,00:10,01:15,00:55,2012-06-24_15:09,2012-06-24_15:54,2012-06-24_16:24
6,V6,v6+n,4,2012-6-24_14:32:00,00:10,01:00,00:45,2012-06-24_14:42,2012-06-24_15:17,2012-06-24_15:42
7,V7,v7+n,1,2012-6-24_17:58:00,00:15,01:15,00:55,2012-06-24_18:13,2012-06-24_18:53,2012-06-24_19:28
8,V8,v8+n,3,2012-6-24_17:59:00,00:15,01:30,01:10,2012-06-24_18:14,2012-06-24_19:09,2012-06-24_19:44
9,V9,v9+n,4,2012-6-24_14:37:00,00:20,01:10,00:50,2012-06-24_14:57,2012-06-24_15:27,2012-06-24_16:07
10,V10,v10+n,5,2012-6-24_14:47:00,00:20,00:50,00:40,2012-06-24_15:07,2012-06-24_15:27,2012-06-24_15:57
11,v11,v11+n,5,2012-6-24_14:33:00,00:25,01:00,00:50,2012-06-24_14:58,2012-06-24_15:23,2012-06-24_15:58
12,V12,v12+n,5,2012-6-24_14:27:00,00:25,01:30,01:00,2012-06-24_14:52,2012-06-24_15:27,2012-06-24_16:22





A voir également:

2 réponses

greg6614 Messages postés 592 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 3 juin 2017 107
3 juin 2017 à 23:21
Salut,

Tu peux utiliser la méthode
toArray()
de l'interface
List<T>
-1
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
4 juin 2017 à 02:14
Bonjour,

writeToCsv prend en paramètre n'importe quel PrintStream, sachant que derrière la seule chose qu'il utilise c'est print et println, donc au lieu de mettre System.out tu peux mettre un PrintStream personnalisé qui va ajouter dans ta liste les String qu'il met dans print/println.

Exemple :

public class ListPrintStream extends PrintStream {
    private List<String> list;
    private StringBuffer buffer;

    public ListPrintStream(List<String> list) {
        super(System.err); // non utilisé dans notre cas
        this.list = list;
        buffer = new StringBuffer();
    }

    @Override
    public void print(String str) {
        buffer.append(str);
    }

    @Override
    public void println(String str) {
        buffer.append(str);
        list.add(buffer.toString());
        buffer = new StringBuffer();
    }
}

List<String> list = new ArrayList<>();
CsvDriver.writeToCsv(results, new ListPrintStream(list), append);
System.out.println(list);
-1