Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88

    [JAVA]Leggere riga indicata da file

    Salve mi servirebbe creare un metodo che legga un linea da file , ma il numero di riga vorrei passarglielo io è possibile? Ho provato così ma da errore...
    codice:
    public String loadRiga(int conta) throws IOException{
            int c=conta;
            File f=new File("CatalogoProdotti.txt");
            FileInputStream fis=new FileInputStream(f);
            InputStreamReader isr=new InputStreamReader(fis);
            BufferedReader br=new BufferedReader(isr);
            String linea=br.readLine();
        while(linea!=null) {
               linea=br.readLine(c+2);                          //DA ERRORE
               
              }
          return linea; 
        }
    Inoltre mi servirebbe poi della riga data prendere solo una parte cioè la stringa da prendere sarebbe
    Prezzo: 123
    io vorrei prendere solo 123 per poi convertirlo in int come potrei fare?

  2. #2

    Re: [JAVA]Leggere riga indicata da file

    Originariamente inviato da j_ax31
    codice:
    ...
               linea=br.readLine(c+2);                          //DA ERRORE
    ...
    Il manuale questo sconosciuto: readLine().
    Non esiste un metodo readLine che prende in input un intero. E' inutile andare per tentativi!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Giusto per aggiungere informazioni, non è possibile andare a leggere un file di testo iniziando da una determinata riga, per tante ragioni. Per dirne una: ciascun sistema operativo gestisce il fine linea a modo suo (su Windows è una sequenza 0x0d + 0x0a, su Unix/Linux è solo 0x0a).

    Se vuoi leggere la riga numero X del file, devi leggere dall'inizio tutto il file, contando il numero di righe e fermandoto alla X-esima riga.


    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
    Feb 2007
    Messaggi
    4,157
    non so se con stream ad accesso casuale puoi portarti alla riga che vuoi.
    In generale vale il principio

    codice:
    int rigaDesiderata = 100; 
    int contatore = 0; 
     while(contatore <= (rigaDesiderata  -1)  && br.readLine() !=null ) {
         contatore++;
     }
    // esci se finisci il file oppure se contatore supera (rigaDesiderata -1), contatore punta dove ti interessa, per cui 
    
    linea = br.readLine(); 
    if (linea != null){
       //Usa substring
    }
      
          return linea; 
        }
    resta il fatto che le API le devi leggere, io ho scritto di getto e non ho verificato
    RTFM Read That F*** Manual!!!

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da valia
    non so se con stream ad accesso casuale puoi portarti alla riga che vuoi.
    Se e solo se le righe sono di lunghezza fissa... in quel caso sono dei "record" e possono essere indirizzati con l'offset... ipotesi che non ho nemmeno preso in considerazione perchè trattare file di testo come file a random, se non per motivi particolari, non mi è mai piaciuta come idea.



    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
    Dec 2010
    Messaggi
    88
    E per estrapolare dalla riga letta solo la parte numerica come posso fare?

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da LeleFT
    Se e solo se le righe sono di lunghezza fissa... in quel caso sono dei "record" e possono essere indirizzati con l'offset... ipotesi che non ho nemmeno preso in considerazione perchè trattare file di testo come file a random, se non per motivi particolari, non mi è mai piaciuta come idea.



    Ciao.
    Grazie per la precisazione.
    Nemmeno a me viene in mente, anzi ultimamente non mi passa per la mente nemmeno di parsarmi i file (non so mai che dimensione potrebbero avere e cosa ci trovo dentro)!
    Mi è venuto in mente l'accesso random perché ieri cercando una spiegazione nel libro java per la collega che non conosce bene il linguaggio è saltata la parte di IO che fa accesso Random ...come quella cosa che non sai di aver letto, ma che registri incosciamente e viene fuori dopo!!!
    RTFM Read That F*** Manual!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da j_ax31
    E per estrapolare dalla riga letta solo la parte numerica come posso fare?
    leggi le API di java.lang.String e vedi se trovi qualcosa che fa per te
    RTFM Read That F*** Manual!!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    88
    Ma cosa c'è di errato in questo metodo?

    codice:
    public String loadRiga(int conta) throws IOException{
            int c=conta+2,n=0;
            File f=new File("CatalogoProdotti.txt");
            FileInputStream fis=new FileInputStream(f);
            InputStreamReader isr=new InputStreamReader(fis);
            BufferedReader br=new BufferedReader(isr);
            String linea=br.readLine();
        while(linea!=null && n<=c ) {
               linea=br.readLine();
               n++;
              }
          return linea; 
        }

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    che errore ti dà?
    io non so cosa c'è di errato, l'ho scritto di getto e senza verificarlo (e te l'ho pure detto).
    RTFM Read That F*** Manual!!!

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.