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

AHop Messages postés 28 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
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

2 réponses

  1. greg6614 Messages postés 629 Statut Membre 107
     
    Salut,

    Tu peux utiliser la méthode
    toArray()
    de l'interface
    List<T>
    -1
  2. KX Messages postés 19031 Statut Modérateur 3 020
     
    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