Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: [JAVA] Lettura da file

  1. #1

    [JAVA] Lettura da file

    Vorrei fare un programma che dato un file di testo qualsiasi, sia in grado di leggerlo e memorizzarlo in un oggetto di tipo String, per poi essere passato come parametro ad un costruttore di un'altra classe.E possibile? Quali classi della libreria " java.io " devo utilizzare?
    ------------------
    Non dire gatto! se non l'hai nel sacco!!!
    ------------------

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    23
    E' un po' che non smanetto, ma se non erro la classe RandomAcessFile mette a disposizione il metodo readLine che legge una riga dal file di testo. Se usi un ciclo che legge una riga alla volta non ci dovrebbero essere grosse difficoltà, devono inoltre essere gestite alcune eccezioni.

  3. #3
    FileInputStream input = new FileInputStream(new File("dati.txt"));
    String tempString="";
    int temp = input.read();
    while ( temp != - 1 )
    {
    tempString = tempString + ((char)temp);
    temp = input.read();
    }

    così in tempString ti trovi tutto il file, magari c'è un modo migliore, ma io faccio così

    Mandrake 10.1; Gnome 2.6
    FireFox&Thunderbird make Internet better

  4. #4
    Ok grazie!!! funzione alla grande. Un utltima cosa sapete dove posso trovare un buon tutorial "magari in italiano" su file e flussi?
    ------------------
    Non dire gatto! se non l'hai nel sacco!!!
    ------------------

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    118
    prova quello scaricabile dal sito www.mokabyte.it
    piu' che un tutorial è un vero e proprio manuale di java2

  6. #6
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    sapete dirmi perchè non trova il file ???
    sicuramente sbaglio il path.. ma come faccio a dirgli di prendere il file relativo...

    codice:
    // LETTURA DEL FILE
    					String tempString="";  
    					try {
    						FileInputStream input = new FileInputStream(new File("../repository/"+ramoSelezionato.url)); 
    						
    						int temp = input.read(); 
    						while ( temp != - 1 ) { 
    							tempString = tempString + ((char)temp); 
    							temp = input.read(); 
    						} 
    					} catch (FileNotFoundException e1) {
    						e1.printStackTrace();
    					} catch (IOException e2) {
    						// TODO Blocco catch generato automaticamente
    						e2.printStackTrace();
    					}
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  7. #7
    Vi posto un esempio di una classe che uso io per la lettura e la scrittura di file di testo.
    Spero possa esservi utile.
    Ciao



    codice:
    import java.io.*;
    import java.util.*;
    
    public class IOfile {
        
        private String lettura = "";
        private String testaFile = "";
        private String codaFile = "";
        private String uog = "";
        private String nuovoFile = "";
        private String TR = "";
        private Vector vettore;
        
        public IOfile(String fileI, String fileO, String fileU) {
        try {  
            BufferedReader fileRead = new BufferedReader(new FileReader(fileI));
            BufferedReader fileUog = new BufferedReader(new FileReader(fileU));
            BufferedWriter fileWrite = new BufferedWriter(new FileWriter(fileO));
            vettore = new Vector();
            caricaVettore(fileUog);
            leggi(fileRead, fileWrite);
            }
        catch (IOException e)
            {
            System.out.println(e);
            }
        }
        
        public void leggi(BufferedReader fileRead, BufferedWriter fileWrite){
       
        try { 
            while(fileRead.ready()){
                lettura = fileRead.readLine();
                if (lettura.substring(0,4).equals("DTKR")){
                    testaFile = lettura.substring(0,85);
                    codaFile = lettura.substring(91,250);
                    uog = lettura.substring(91,101);
                    nuovoFile = testaFile + ricercaVettore() + codaFile;
                    fileWrite.write(nuovoFile);
                    fileWrite.newLine();
                    fileWrite.flush();
                    }
                else {
                    fileWrite.write(lettura);
                    if(fileRead.ready()){
                        fileWrite.newLine();
                        }
                    fileWrite.flush();
                    }
                }
            fileRead.close();
            fileWrite.close();
    
            } 
        catch (IOException e)
            {
            System.out.println(e);
            } 
            
        }
        
       public void caricaVettore(BufferedReader fileUog){
       
       try { 
           while(fileUog.ready()){
                vettore.add(fileUog.readLine());
            }
           fileUog.close();
           }
        catch (IOException e)
            {
            System.out.println(e);
            }     
           
       }
       
       
       public String ricercaVettore(){
       
       String Svettore = "";    
       for (int i = 0; i < vettore.size(); i++) {
           Svettore = (String)vettore.get(i);
            if (Svettore.substring(0,10).equals(uog)){
                return Svettore.substring(10,16);
            }
           
       }
       return "      ";    
       }
    
    }

  8. #8
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    il mio problema è che non riesco a specificare il path relativo del file !!!
    è assurdo che non si riesca..
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  9. #9
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    ok risolto... ma... se leggo un file di testo da 1 mega si inchioda tutto quanto !!!!!!!!!!!!!!!!!!!!!!!!!
    non c'è una classettina un po' più veloce di sta schifezza immonda ???

    codice:
    // LETTURA DEL FILE
    					String tempString="";  
    					try {
    						File fileInput = new File("it/vegaspa/clientFXS/repository/" + ramoSelezionato.url);
    						//FileInputStream input = new FileInputStream(fileInput.getAbsolutePath()); 
    						
    						FileReader input = new FileReader(fileInput.getAbsolutePath());
    					
    						
    						
    						int temp = input.read(); 
    						while ( temp != - 1 ) { 
    							tempString = tempString + ((char)temp); 
    							temp = input.read(); 
    						} 
    						
    						jTextArea_Dettagli.setText(String.valueOf(tempString));
    						
    					} catch (FileNotFoundException e1) {
    						System.out.println();
    					} catch (IOException e2) {
    						e2.printStackTrace();
    					}
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  10. #10
    Probabilmente fai questa operazione direttamente in risposta ad un evento, e quindi del "dispatch event thread". Quindi, per tutto il tempo che dura, nessun'altro evento puo' essere gestito.
    Considera l'opportunita' di creare un thread separato.
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

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.