Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    2

    [Java]Aiuto lettura file csv

    Ciao ragazzi, come prima cosa saluto tutti essendo questo il mio primo post qui, anche se è da tanto che mi leggo

    Allora ho un piccolo problema...
    Dovrei leggere in input un file in formato csv e trascriverlo su un file txt. Il file csv è formato da un tot numero di campi, come ad esempio nome, cognome, indirizzo, numero civico.
    Ora dovrei prendere questi campi e nel file txt riscriverli secondo una certa formattazione, quindi con ad esempio 20 caratteri per il nome inserendo gli spazi quando è finita la parola ecc ecc

    per ora ho iniziato a mettere giù un codice di questo tipo, va bene secondo voi?

    codice:
    import java.io.BufferedWriter;
    import java.io.FileReader;
    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.StringTokenizer;
    import java.util.ArrayList;
     
    public class ReadWrite
    {
      public static void main( String [] args )
      {
       ArrayList<ARecord> listaParametri =new ArrayList<ARecord>( );
      
       try
       {
         FileReader fr = new FileReader( "C:\tanacli.csv" );
         BufferedReader br = new BufferedReader( fr );
         
         FileWriter fw= new FileWriter("blablabla.txt");
         BufferedWriter bw=new BufferedWriter(fw);
        
         String stringRead = br.readLine( );
         while( stringRead != null )
         {
        	 
           StringTokenizer st = new StringTokenizer( stringRead, "," );
           String nome = st.nextToken( );
           String cognome = st.nextToken( );
           String via = st.nextToken( );
           
           ARecord frTemp = new ARecord(nome,cognome,via);
           listaParametri.add( frTemp );
    
           stringRead = br.readLine( );
         }
     //add to output file
         br.close( );
       }
     
       catch( FileNotFoundException fnfe )
       {
         System.out.println( "Impossibile trovare blabla.csv" );
       }
     
       catch( IOException ioe )
       {
         ioe.printStackTrace( );
       }
     
    
     }}

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,317

    Moderazione

    Java ha un forum dedicato, quindi sposto la discussione.

    Poi, come specificato nel Regolamento, che dovresti aver letto, il codice va postato all'interno dei tag [code] e [/code] in modo da facilitarne la lettura.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java]Aiuto lettura file csv

    Originariamente inviato da giamoy
    per ora ho iniziato a mettere giù un codice di questo tipo, va bene secondo voi?
    Grosso modo ... a grandi linee sì. Se devi mettere un backslash in una stringa literal devi mettere \\ non solo \.

    Per quanto riguarda l'uso di StringTokenizer potresti avere problemi. Perché se uno o più campi del tuo file csv fossero vuoti, hai una cosa del tipo blabla,,,blabla,..... cioè hai più virgole una dietro l'altra. Il fatto è che StringTokenizer usa dei "delimitatori" e per come funziona, se trova più delimitatori vicini semplicemente li salta tutti. Detto in altre parole, vuol dire che non potresti mai ottenere una stringa vuota per quei campi vuoti!!!

    Devi usare qualcos'altro, come ad esempio split() di String che spezza una stringa usando un "separatore" specificato usando una espressione regolare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    2
    infatti... non sapevo che il tokenizer funzionasse così, infatti ho degli spazi vuoti all'interno del file csv... e mi ritornava errore, ho scoperto con il debug che saltava delle cose!

    mi sa che dovrò farlo con lo split() allora!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.