Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Stampare righe casualmente da file

    Ciao, devo restituire una stringa già presente in un file, in maniera casuale (una riga per volta)..ci sono riuscito utilizzando un vettore ke le legge e poi restituisce grazie ad una random() una stringa per volta. Ci sarebbe però qualke funzione ke legge una riga a caso dal file?stavo controllando ma non e ho trovato..grazie

    codice:
    import java.io.*;
    import java.util.*;
    
    public static void main(String args[])
    {
        File f = new File("c:\\parole.txt");
        String riga;
        String[] lista;
        Random random;
        int index=0;
        int a = 0;
        
        public main()
        {
            crea();
            lista = new String[4];
            random = new Random();
            
        }
        
        
        public void crea()
        {
            try
                {
                    FileOutputStream fos = new FileOutputStream(f);
                    PrintStream ps = new PrintStream(fos);
                    ps.println("Stringa1");
                    ps.println("Stringa2");
                    ps.println("Stringa3");
                    ps.println("Stringa4");
                    ps.close();
                }      
        
            catch(Exception e)
                {
                    System.out.println(e);
                }
        }   
    
    
        public String leggi()
        {
            try
                {
                    FileInputStream fis = new FileInputStream(f);
                    InputStreamReader isr = new InputStreamReader(fis);
                    BufferedReader br = new BufferedReader(isr);
                    riga = br.readLine();
                    
                    int i=0;
                    while (riga!=null && i <4)
                    {
                        lista[i] = riga;
                        riga = br.readLine();
                        i+=1;
                    }
                }
           
            catch(Exception e)
            {
                System.out.println(e);
            }
            
            a = random.nextInt(4);
            return lista[a];
        }
        
            
    }

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

    Re: Stampare righe casualmente da file

    Originariamente inviato da VladTepes
    Ci sarebbe però qualke funzione ke legge una riga a caso dal file?
    Se sai a priori che il file ha N righe, estrai un numero X compreso tra 1 e N e quindi fai un ciclo di lettura delle righe per X volte. Alla fine hai la riga casuale.
    Avrebbe senso solo se lo devi fare 1 volta sola. Se devi ripetere questa estrazione più volte, ti conviene caricare in memoria tutte le righe.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.