Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 35
  1. #1

    [JAVA] Caricare e/o Salvare un file

    Ciao a tutti, mi chiamo Sara. Sono una grandissima fan del vostro sito e finalmente dopo tanto tempo ho deciso d'iscrivermi anche perchè studiando all'università mi sono imbattuta nell'esame d'Ingegneria del Software. Mamma mia che stress

    Bene, l'esame come facile intuire, si basa sul linguaggio Java. Gli strumenti che utilizzo sono Eclipse e Jigloo. Credo che voi li conosciate molto meglio di me, soprattutto quando i docenti non spiegano...NIENTE!!!

    Mi sono inbattuta in un problema, che spero si risolvibile, nell'applicazione da realizzare c'è la gestione dei file, solo che non so proprio come farla! In pratica nella progettazione avevo pensato di mettere un file in root e gestirlo dall'interfaccia grafica. Permettere di scaricarlo in un qualsiasi punto e ricaricarlo con un nome associato all'utente loggato

    Questa cosa è realizzabile?

    Ciao ed un bacione a tutti

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

    Re: [JAVA] Caricare e/o Salvare un file

    Originariamente inviato da onlysara
    Mi sono inbattuta in un problema, che spero si risolvibile, nell'applicazione da realizzare c'è la gestione dei file, solo che non so proprio come farla! In pratica nella progettazione avevo pensato di mettere un file in root e gestirlo dall'interfaccia grafica. Permettere di scaricarlo in un qualsiasi punto e ricaricarlo con un nome associato all'utente loggato
    Ciao. Dovresti però spiegare la questione in modo più preciso e dettagliato. Quale è il problema esatto? Usare le classi di I/O per leggere/scrivere il file? Far scegliere es. all'utente un nome di file? Poi file di che tipo? testuale? binario?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    In pratica devo poter copiare un file da una sorgente qualsiasi nella root del mio progetto cambiandola di nome con quello della userID ed al contrario prendere un file fisso dalla cartella del mio progetto e copiarlo in cartella scelta dall'utente

  4. #4
    Per quanto riguarda la copia di un file importato ci sono riuscita

    Solo che ora non riesco a fargli scaricare un file già presente in una destinazione a scelta, a mo di Scarica il Modulo :master:

    HELPPPP

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da onlysara
    In pratica devo poter copiare un file da una sorgente qualsiasi nella root del mio progetto cambiandola di nome con quello della userID ed al contrario prendere un file fisso dalla cartella del mio progetto e copiarlo in cartella scelta dall'utente
    Ok, quindi la questione è copiare un file presente sul file-system da una cartella ad un'altra.

    Java nel suo framework standard non offre alcuna funzionalità diretta per copiare file, non c'è una classe o metodo diretto per effettuare la copia di un file.

    Se vuoi si può fare e ci sono almeno 2 strade:
    a) Invocare con exec() di Runtime un comando esterno (chiaramente dipendente dal S.O.) per eseguire la copia del file.
    b) Creare un FileInputStream (da cui leggere) e un FileOutputStream (su cui scrivere) e con un semplice loop copiare a blocchi di N byte l'intero contenuto del file. I nomi del file sorgente e destinazione chiaramente li si passa ai costruttori delle due classi che ho menzionato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Originariamente inviato da andbin
    b) Creare un FileInputStream (da cui leggere) e un FileOutputStream (su cui scrivere) e con un semplice loop copiare a blocchi di N byte l'intero contenuto del file. I nomi del file sorgente e destinazione chiaramente li si passa ai costruttori delle due classi che ho menzionato.
    Infatti ho fatto proprio questo e funziona, infatti io seleziono un file e me lo copia nell root del mio workspace, e fin qui tutto ok

    Ora però non riesco a fare l'operazione "inversa", cioè ho un file presente nella root e voglio che l'utente lo possa scaricare in una destinazione scelta tramite la showSaveDialog con il nome del file originario o modificandolo mantenendo la sua estensione. Ti faccio vedere il codice che ho utilizzato?

    Ciao Sara

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da onlysara
    Ora però non riesco a fare l'operazione "inversa", cioè ho un file presente nella root e voglio che l'utente lo possa scaricare in una destinazione scelta tramite la showSaveDialog con il nome del file originario o modificandolo mantenendo la sua estensione.
    JFileChooser ti fornisce un oggetto File, usalo come "destinazione" per la copia. O non è questo il problema?? Se vuoi posta il codice (tra i tag CODE e ben indentato).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Questo è il codice della copia un pò modificato per il salvataggio, ti scrivo anche quello funzionante per la copia?
    codice:
    //funzione salva file   
        public static void saveFile() {
            JFileChooser chooser = new JFileChooser();
            File modello = new File("modello_programma.rtf");
    
            chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
              public boolean accept(File f) {
                return f.getName().toLowerCase().endsWith(".rtf")
                    || f.isDirectory();
              }
    
              public String getDescription() {
                return "Documento *.RTF";
              }
            });
    
            int s = chooser.showSaveDialog(new JFrame());
             if (s == JFileChooser.APPROVE_OPTION) {
              try {
    			save(modello);
    		} catch (IOException e) {
    			System.err.println(e.getMessage());
    		}
              System.out.println(modello);     
              
            }
          }
        
        //salvataggio a livello fisico
        public static void save(File modello)
        throws IOException {
        File fromFile = modello;
        File toFile = new File("modello_programma.rtf");
    
        if (toFile.isDirectory())
          toFile = new File(toFile, fromFile.getName());
    
        if (toFile.exists()) {
         if (!toFile.canWrite())
          throw new IOException("FileCopy: "
              + "destination file is unwriteable: " + modello);
          System.out.print("Overwrite existing file " + toFile.getName()
              + "? (Y/N): ");
          System.out.flush();
          BufferedReader in = new BufferedReader(new InputStreamReader(
            System.in));
          String response = in.readLine();
        if (!response.equals("Y") && !response.equals("y"))
          throw new IOException("FileCopy: "
              + "existing file was not overwritten.");
        } else {
          String parent = toFile.getParent();
           if (parent == null)
            parent = System.getProperty("user.dir");
            File dir = new File(parent);
        if (!dir.exists())
          throw new IOException("FileCopy: "
              + "destination directory doesn't exist: " + parent);
        if (dir.isFile())
          throw new IOException("FileCopy: "
              + "destination is not a directory: " + parent);
        if (!dir.canWrite())
          throw new IOException("FileCopy: "
              + "destination directory is unwriteable: " + parent);
      }
    
      FileInputStream from = null;
      FileOutputStream to = null;
      try {
        from = new FileInputStream(fromFile);
        to = new FileOutputStream(toFile);
        byte[] buffer = new byte[4096];
        int bytesRead;
    
        while ((bytesRead = from.read(buffer)) != -1)
          to.write(buffer, 0, bytesRead); // write
      } finally {
        if (from != null)
          try {
            from.close();
          } catch (IOException e) {
            ;
          }
        if (to != null)
          try {
            to.close();
          } catch (IOException e) {
            ;
          }
      }
    }

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da onlysara
    Questo è il codice
    Ma .. dal codice che hai postato, vedo che non usi il nome del file selezionato dall'utente con JFileChooser.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Originariamente inviato da andbin
    Ma .. dal codice che hai postato, vedo che non usi il nome del file selezionato dall'utente con JFileChooser.
    Infatti questo codice mi serve per il salvataggio di un file già presente nella root in una cartella scelta dall'utente. Mi servirebbe una mano per modificarlo per questa funzione

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.