Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93

    [ Java ] Importare da una file.txt in java

    Salve ragazzi, mi servirebbe un input su questo problema. Ho un file .txt di questo tipo:

    TypeFichier: HWS
    NombrePoints: 260
    FrequenceEchantillonage(Hz): 200.000
    0 10532 9678 0 0 0 900 3424784
    0.005 10532 9678 0 0 1350 890 3424794
    0.01 10532 9678 0 0 1350 860 3424804
    0.015 10523 9678 0 0 1350 830 3424814
    0.02 10508 9678 0 0 1350 800 3424824
    0.025 10492 9657 0 0 1350 800 3424834
    0.03 10478 9643 0 0 1350 800 3424844
    0.035 10468 9632 0 0 1350 800 3424854
    .................................................. ................

    vorrei caricarlo in java ed
    1) eliminare le prime 3 stringhe, e restare solo con la tabella (8 colonne, le righe dipendono dai dati in input)
    2) inserire tutto in una matrice in modo da poter fare le operazione che mi servono ( eliminazione colonne, somma degli elementi di una colonna .....)

    Mi sapreste indirizzare ?
    Ultima modifica di banino84; 04-03-2015 a 21:04

  2. #2
    Apri il file con una BufferedReader e leggi linea per linea, contandole. In questo modo ti sara' facile scartare le prime 3. Per le altre, hai vari modi per ottenere i dati che ti servono. Probabilmente la String.split() e' quella risolve in maniera semplice il tuo problema

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93
    ok, grazie.... ci provo

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93
    allora mi sono creato questa funzione

    codice:
    public int contarighe(String nomeFile)
            {
                int cont = 0;
                try
                {
                    FileReader reader = new FileReader(nomeFile);
                    BufferedReader in = new BufferedReader(reader);
                    LineNumberReader ln = new LineNumberReader(in);
                    while(ln.readLine()!= null) cont++;
                    reader.close();
                    in.close();                
                }
                catch(IOException e){}
                
                return cont;//Restituisce il numero di righe
            }

    che mi conta il numero di righe del mio file.txt

    adesso volendo saltare le prime 3 righe come potrei procedere?
    Ultima modifica di LeleFT; 10-03-2015 a 10:40 Motivo: Aggiunti i tag CODE

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Prima di entrare nel while, fai tre letture a vuoto:

    codice:
    ln.readLine();   // Leggo (e butto via) la prima riga
    ln.readLine();   // Leggo (e butto via) la seconda riga
    ln.readLine();   // Leggo (e butto via) la terza riga
    
    // Ho letto (e buttato via) le prime tre righe... procedo col resto
    while(ln.readLine() != null) cnt++;
    ...

    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
    In realta' la LineNumberReader gia' conta le righe per te. Quindi non hai bisogno del contatore, basta chiedere all'oggetto a quale riga sei (se non ricordo male, la prima e' la zero ma non ne sarei sicuro).

    Invece di fare tre letture a vuoto, potresti usare questo contatore per non far nulla in caso che il conteggio delle linee sia inferiore a tre. Si tratta di una questione di gusti, ovviamente

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quote Originariamente inviata da sottovento Visualizza il messaggio
    In realta' la LineNumberReader gia' conta le righe per te. Quindi non hai bisogno del contatore, basta chiedere all'oggetto a quale riga sei (se non ricordo male, la prima e' la zero ma non ne sarei sicuro).
    Sì, infatti mi domandavo perchè di quel contatore, ma ho pensato che volesse in qualche modo usarlo più avanti (magari dentro al while, quando svilupperà la seconda parte della sua richiesta).

    Invece di fare tre letture a vuoto, potresti usare questo contatore per non far nulla in caso che il conteggio delle linee sia inferiore a tre. Si tratta di una questione di gusti, ovviamente
    Non far nulla se getLineNumber() restituisce un valore minore di 3 equivale a fare 3 letture a vuoto. Tanto vale farle senza dover ogni volta valutare un'espressione...


    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

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93
    si quel while mi serve dopo per implementare un contatore, il numero di line mi servono per un altro metodo
    cmq grazie mille

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93
    sto provando solo su una riga il funzionamento dello split quando trova uno spazio....
    codice:
    String []parts= ln.readLine().split(" ");
            
            for(int j=0;j<=8;j++){
            
            System.out.println(parts[j]);
            }
    questo è ciò che mi stampa a video( guardare l'esempio che ho caricato come primo messaggio)

    0 10532

    9678

    0

    ho dei problemi a questo punto
    Ultima modifica di banino84; 11-03-2015 a 21:54 Motivo: aggiunta

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93
    anche perchè ho notato che molti file hanno più di uno spazio tra un carattere e l'altro... quindi i file con solo uno spazio lo split funziona, con gli altri no... come posso fare a farlo funzionare anche sugli altri file che hanno più di uno spazio?

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.