Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631

    copiare contenuto file

    ciao ragazzi cè una istruzione per copiare velocemente il contenuto di un file, che so una istruzione tipo "copy"

    grazie ciao
    quando il diavolo ti accarezza è perchè vuole la tua anima

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

    Re: copiare contenuto file

    Originariamente inviato da gax80
    ciao ragazzi cè una istruzione per copiare velocemente il contenuto di un file, che so una istruzione tipo "copy"
    No, non c'è alcun metodo per copiare file. Devi farlo tu, quindi devi ottenere un InputStream, un OutputStream e leggere e scrivere a blocchi di N byte (al fine di avere buone prestazioni). Si può anche fare con i channel.
    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 L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    codice:
    public class MainClass {
    
      public static void main(String args[]) {
    
        try {
    
          FileReader fr = new FileReader(args[0]);
    
          FileWriter fw = new FileWriter(args[1]);
    
          int i;
          while ((i = fr.read()) != -1) {
            fw.write(i);
          }
          fw.close();
    
          fr.close();
        } catch (Exception e) {
          System.out.println("Exception: " + e);
        }
      }
    }
    ho provato questo codice ma non mi fa nulla..cè un altro modo?
    quando il diavolo ti accarezza è perchè vuole la tua anima

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da gax80
    ho provato questo codice ma non mi fa nulla..cè un altro modo?
    A parte il fatto che i Reader/Writer non sono certo l'ideale per fare una copia binaria, infatti lavorano sui caratteri e non sui byte!!! E in ogni caso avrebbe prestazioni pessime il tuo codice, visto che leggi/scrivi 1 carattere per volta.

    Si può fare, come avevo, con i channel. Ed è di una semplicità tendente all'infinito!

    codice:
    import java.io.*;
    import java.nio.channels.*;
    ....
    
    public static void copyFile (String source, String destination)
        throws IOException
    {
        FileChannel srcChannel = null;
        FileChannel dstChannel = null;
    
        try
        {
            srcChannel = new FileInputStream (source).getChannel ();
            dstChannel = new FileOutputStream (destination).getChannel ();
    
            srcChannel.transferTo (0, srcChannel.size (), dstChannel);
        }
        finally
        {
            if (srcChannel != null)
                srcChannel.close ();
            if (dstChannel != null)
                dstChannel.close ();
        }
    }
    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.