Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    78

    Scrivere file dentro un jar

    Buongiorno, io ho un programma che salva alcune impostazioni in un semplicissimo file.
    Quando vado a modificare le impostazioni le vado a leggere, memorizzare su variabili temporanee e poi trascrivo tutto in un nuovo file che va a sostituire il precedente.
    Questo funziona perfettamente finché eseguo il tutto da linea di comando, ma quando creo il jar del programma ovviamente (per come è stato scritto il codice) al momento della creazione del file, questo viene creato nella stessa directory che contiene il jar.
    Come posso modificare il codice affinché crei il file all'interno del jar??

    codice:
    //ascoltatore bottoneOk
    class AscoltatoreButtonOk implements ActionListener {
    public void actionPerformed(ActionEvent e) {
            String data="000000:0";
            String vel="vel:0";
            //LEGGO
            Scanner s=new Scanner(System.in);
            String nomeFile="settings.dat";
            s=new Scanner(Impostazioni.class.getResourceAsStream(nomeFile));
            String x=s.nextLine();
            String y=s.nextLine();
            data=s.nextLine();
            vel=s.nextLine();
                //SCRIVO
                PrintWriter writer=null;
                try{
                writer =new PrintWriter(new BufferedWriter(new FileWriter("settings.dat")));
                writer.println("x:"+panel.fieldX.getText());
                writer.println("y:"+panel.fieldY.getText());
                writer.println(data);
                writer.println(vel);
                }catch(IOException ex){
                       JOptionPane.showMessageDialog(null, "Non riesco a scrivere sul file \"settings.dat\", reinstalla.");
                }
                finally{
                    writer.close();
                }
            }//actionPerformed
        }//AscoltatoreButtonOk

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Polly008 Visualizza il messaggio
    Come posso modificare il codice affinché crei il file all'interno del jar??
    Tecnicamente/teoricamente si potrebbe anche arrivare a farlo ma in realtà ..... NON dovresti. Tra l'altro le "risorse" (come intese dai getResource/getResourceAsStream) sono solamente "read-only", a sola lettura. Non c'è modo diretto per scrivere sulle risorse.

    Se vuoi gestire/salvare delle "preferenze" o configurazioni, ci sono diversi altri modi, come minimo:
    - file di properties (possibilmente in locazioni "note", es. sotto la "home" directory dell'utente).
    - la Preference API (package java.util.prefs disponibile da Java 1.4).
    Ultima modifica di andbin; 30-03-2015 a 14:44
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    78
    purtroppo è come immaginavo.
    Come spesso accade però il programma è di svariate righe di codice, dove è sparsa qua e là la lettura delle impostazioni, e solamente in due punti la modifica.
    Usare la Preference API vorrebbe dire riscrivere molto codice, se fosse possibile continuerei su questa strada anche se non elegante.

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.