Visualizzazione dei risultati da 1 a 3 su 3

Discussione: OOP e gestione file

  1. #1
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543

    OOP e gestione file

    Salve, sto creando una classe per facilitarmi alcune operazioni con dei file...
    vorrei sapere se posso evitare di riferirmi usando il nome ma solo il riferimento...faccio un esempio che forse sarà più chiaro....
    codice:
    public class MyFile{
    
    MyFile(String nome){
    creaFile(nome);
    }
    
    leggiFile(String nome){
    blablabla
    }
    }
    così facendo posso creare
    codice:
    MyFile oggetto = new MyFile();
    oggetto.creaFile("daasd");
    oggetto.creaFile("daasdgwegwe");
    oggetto.leggiFile("daasd");
    mentre io vorrei che per ogni istanza di MyFile venga creato un file (il nome non importa) e che possa accedere così:
    codice:
    MyFile oggetto = new MyFile();
    MyFile oggetto2 = new MyFile();
    oggetto.leggi();
    oggetto2.scrivi();
    cioè fare riferimento al file in base all'istanza sulla quale opero....come potrei fare?

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Non sono chiare alcune cose..:
    1. da quanto tempo giochi con java.io ?
    2. i file su cui devi lavorare hanno delle caratteristiche particolari o sono file generici?
    3. qua sotto, non manca il nome del file nella chiamata al costruttore?
    codice:
    MyFile oggetto = new MyFile();
    MyFile oggetto2 = new MyFile();
    oggetto.leggi();
    oggetto2.scrivi();
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

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

    Re: OOP e gestione file

    Originariamente inviato da oronze
    Salve, sto creando una classe per facilitarmi alcune operazioni con dei file...
    vorrei sapere se posso evitare di riferirmi usando il nome ma solo il riferimento...
    Scusa ma quello che hai scritto non ha molto senso ..... innanzitutto dovresti spiegare cosa intendi per crea/leggi/scrivi. Cioè cosa intendi davvero fare? "crea" per te vuol dire solo creare un nuovo file azzerandolo?? E leggi/scrivi .... ma che cosa, che dati?? Un metodo come quello che hai scritto oggetto2.scrivi(); non ha senso ... scrive che cosa??


    Immagina ad esempio di voler creare una classe che incapsuli il più possibile la gestione della lettura "a righe" (una singola per volta o tutte) di un file di testo, in modo da non dover fare ogni volta la concatenazione di BufferedReader a FileReader/InputStreamReader ecc...

    Si potrebbe fare:

    codice:
    class TextFileReader {
        private BufferedReader br;
    
        public TextFileReader(String filename) throws IOException {
            br = new BufferedReader(new FileReader(filename));
        }
    
        public TextFileReader(String filename, String charset) throws IOException {
            FileInputStream fis = new FileInputStream(filename);
    
            try {
                br = new BufferedReader(new InputStreamReader(fis, charset));
            } catch (IOException e) {
                fis.close();
                throw e;
            }
        }
    
        public String readLine() throws IOException {
            return br.readLine();
        }
    
        public ArrayList<String> readAllLines() throws IOException {
            ArrayList<String> lines = new ArrayList<String>();
            String line;
    
            while ((line = readLine()) != null) {
                lines.add(line);
            }
    
            return lines;
        }
    
        public void close() throws IOException {
            br.close();
        }
    }
    Questo ha molto più senso!!! Il "chaining" delle classi di I/O e la logica di lettura di una riga o più righe sono ben incapsulate nella classe.
    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.