Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    93

    [JAVA] Lettura di un file

    Ciao a tutti,
    volevo chiedere un consiglio su come leggere un file di questo tipo:


    12345,xiuwejdm,23343434,vvvvppppoooo

    Grazie mille!!!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Cosa intendi? Non è chiaro... per leggere un file ci sono diversi modi: puoi vedere il tuo file come un testo, come un insieme di byte, un insisme di oggetti Java serializzati...

    Se il tuo problema è leggere un file che contiene stringhe di quel tipo e ti interessa "suddividere" i campi stringa da quelli numerici, devi prima leggere la riga in una stringa (con un BufferedReader oppure un FileInputReader) e poi usare uno StringTokenizer per tokenizzare la stringa... nel tuo caso, la virgola potrebbe fare da separatore di tokens.


    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
    Registrato dal
    May 2001
    Messaggi
    93
    Devo semplicemente leggere i valori che sono separati dalla virgola!!!

    Mi faresti un esempio grazie????

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Esempio:
    codice:
    try {
       BufferedReader br = new BufferedReader( new FileReader("nomefile") );
       String linea = br.readLine();
       separaStringa(linea);
    } catch (Exception e) { e.printStackTrace(); }
    
    ...
    
    private void separaStringa(String linea) {
       StringTokenizer st = new StringTokenizer(linea, ",");
       int i = 0;
       while (st.hasMoreTokens()) {
          System.out.println("Token numero " + i + ": " + st.nextToken());
          i++;
       }
    }
    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

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    93
    Se mi servisse invece prendere solo il primo ed il terzo valore come potrei fare? Tenendo presente che il file è lunghetto e che le righe non sono sempre della stessa lunghezza!!!!

    Es.:

    xxxx;12312312;445454545;bvnfdgfg
    11111;4445kjgkr;mvnvbv;4534534534

    etc. etc

  6. #6
    bhè, ti ha pur risposto: i ltokenizer ti spezza la stringa in base al carattere che specifichi, poi tocca a te prendere l'n-sima sottostringa...
    ovviamente considerando che l'n-sima sottostringa potrebbe anche non esistere

    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    93
    mi fai un esempio?

  8. #8
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Puoi anche fare cosi:

    String[] strings = linea.split(",");

    a questo punto strings[0] e strings[2] contenono rispettivamente la prima e la terza sottostringa.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    93
    La funzione "SPLIT" non funziona in java!!!!!
    Hai qualche suggerimento?

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Il metodo split c'è dalla versione 1.4 della JDK.
    Se proprio non riesci con il metodo split, dovrebbe andare bene questo codice:
    codice:
    try {
       BufferedReader br = new BufferedReader( new FileReader("nomefile") );
       String linea = br.readLine();
       String [] s = separaStringa(linea);
    } catch (Exception e) { e.printStackTrace(); }
    
    ...
    
    private String[] separaStringa(String linea) {
       StringTokenizer st = new StringTokenizer(linea, ",");
       String [] result = new String[st.countTokens()];
       int i = 0;
       while (st.hasMoreTokens()) {
          result[i] = st.nextToken();
          i++;
       }
       return result;
    }
    A questo punto, nell'array s hai tutti i tokens della stringa. Basta che prendi il primo ed il terzo (se sono quelli che ti servono).


    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

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 © 2024 vBulletin Solutions, Inc. All rights reserved.