Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    53

    [file CSV]

    salve ragazze dovrei scrivere dei valori contenuti in textfield in un file csv.
    ogni valore presente in textfield corrisponde ad una colonna del file csv.
    qualcuno di voi mi saprebbe dire da dove poter iniziare?

    Grazie

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

    Moderazione

    Come indicato nel Regolamento, il titolo è importante. Tra parentesi quadre si indica il linguaggio, fuori il titolo, che deve essere significativo.

    Correggo io.


    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
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Un file CSV altro non è che un file di testo, in cui i campi sono separati da virgola (o punto e virgola, in alcune varianti). CSV = Comma Separated Values.

    Per scrivere un file di testo utilizzerai le normali classi di I/O presenti nel core Java standard: FileOutputStream e PrintStream.

    Quindi, andrai a scrivere i valori presenti nelle tue JTextField:
    codice:
    {
       // Apriamo il file "tuoFile.csv" in scrittura
       PrintStream ps = new PrintStream( new FileOutputStream("tuoFile.csv") );
       
       // Scriviamo l'intestazione delle colonne
       ps.println("Colonna1,Colonna2,Colonna3,...");
       
       // Scriviamo i valori
       ps.println(textField1.getText() + "," +
                  textField2.getText() + "," +
                  textField3.getText() + "," +
                  ...);
       
       // Chiudiamo il file
       ps.close();
    } catch (Exception e) { e.printStackTrace(); }
    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

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    53
    ottimo lele. per la lettura invece come bisogna comportarsi?

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da Rosario7
    ottimo lele. per la lettura invece come bisogna comportarsi?
    Si utilizza un FileReader, solitamentre wrappato da un BufferedReader (o uno Scanner, se hai una recente JDK) e si legge, riga per riga, finchè il file non finisce:

    codice:
    try {
       BufferedReader br = new BufferedReader( new FileReader("mioFile.csv") );
       String linea = "";
       while((linea = br.readLine()) != null) {
          // Faccio quello che devo fare con "linea"
          // Ad esempio, la divido secondo il carattere virgola
          String[] campi = linea.split(",");
    
          // Ora ho un array: ciascun elemento è il valore di un campo.
          ...   // Ci faccio quello che voglio
       }
    
       // Chiudo il file
       br.close();
    } catch (Exception e) { e.printStackTrace(); }
    Attenzione che nell'esempio ho tralasciato il fatto che la prima riga contiene le intestazioni di colonna e non i valori.


    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    53
    ciao lele ho provato la lettura con una piccola variante.Siccome non posso adoperare la funzione split, perchè ho bisogno assolutamente di jdk 1.3 ,ho adoperato StringTokenizer.
    codice:
    public void leggi(){
           try {
                BufferedReader br = new BufferedReader(new FileReader(path));
                String linea = "";
                //leggo a vuoto per la riga di intestazione
                br.readLine();
                while((linea = br.readLine()) != null) {
                //ottengo i vari campi suddivisi dal carattere ";"
                String[] campi=null;
                StringTokenizer st=new StringTokenizer(linea,";");
                int i=0;
                while(st.hasMoreElements()){
                   campi[i]=st.nextToken();
                   ++i;
                }
                // Ora ho un array: ciascun elemento è il valore di un campo.
            }
            //Chiudo il file
            br.close();
            } catch (Exception e) { e.printStackTrace(); }
           
        }
    il problema è alla riga rossa dove mi genera un errore NullPointer.Sapresti aiutarmi?

    Grazie

  7. #7
    devi inizializzare la variabile campi!

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.