Problem bei JFileChooser mit Datei kopieren,


#1
Hallo,
Ich habe ein Problem mit folgenden Code:
Code:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Florian
 */
public class InstallAlgorithms {
    
    static InputStream EBGInstallIn = Installer.class.getClassLoader().getResourceAsStream("EBG/files/install/minecraft.jar");
    static InputStream EBGDocsIn = Installer.class.getClassLoader().getResourceAsStream("EBG/files/docs/EBGDocs.zip");
    
    static EBGInstallMethods m;
    
    public static void install(String pathStr) throws Exception{
        
        File installPath = new File(pathStr);
        
        File EBGMainFolder = new File(installPath + "/EBGBackups and Stuff/");
        File EBGDocsFolder = new File(EBGMainFolder + "/EBGDocs/");
        
        File EBGBackupFolder = new File(EBGMainFolder + "/EBGBackups/");
        
        if((!EBGMainFolder.exists()) || (!EBGDocsFolder.exists()) || (!EBGBackupFolder.exists())){
            System.out.println();
            if(!EBGMainFolder.exists()){
                System.out.println("Creating Folder: " + EBGMainFolder);
                EBGMainFolder.mkdir();
                System.out.println("Folder created!");
            }if(!EBGDocsFolder.exists()){
                System.out.println("Creating Folder: " + EBGDocsFolder);
                EBGDocsFolder.mkdir();
                System.out.println("Folder Created!");
            }if(!EBGBackupFolder.exists()){
                System.out.println("Creating Folder: " + EBGBackupFolder);
                EBGBackupFolder.mkdir();
                System.out.println("Folder Created!");
            }
            System.out.println();
        }
        
        File backupInputFirst = new File(pathStr + File.separatorChar + "minecraft.jar");
        System.out.println("MEEP: " + backupInputFirst);
        File finalBackupInput = backupInputFirst;
        
        OutputStream EBGInstallOut = new FileOutputStream(installPath + "/minecraft.jar");
        OutputStream EBGDocsOut = new FileOutputStream(EBGDocsFolder + "/EBGDocs.zip");
        
        CopyFileInJar.copyForFileInput(finalBackupInput.getCanonicalFile(), new File(EBGBackupFolder + "/minecraft.jar"));
        
        System.out.println();
        System.out.println("Installing Mod: ");
        CopyFileInJar.copy(EBGInstallIn, EBGInstallOut);
        System.out.println("Mod Mainfile has been transfered to: ");
        System.out.println(installPath + "/minecraft.jar");
        System.out.println();
        System.out.println("Extracting Docs: ");
        CopyFileInJar.copy(EBGDocsIn, EBGDocsOut);
        System.out.println("Docs has been extracted.");
        System.out.println();
        System.out.println("Installation Successful!");
    }
}
Ich will das, dass Programm eine Kopie von der minecraft.jar im bin Ordner von Minecraft macht, und diese Datei dann in den Backupfolder verschiebt, klappt soweit, nur das die Ausgabedatei 0kB hat, aber bei allen anderen sprich bei dem Installieren und beim Docs in nen Ordner kopieren klappt alles.
Habe den Kopieralgorithmus auch mit konkreter Angabe des Pfades ausprobiert und es klappt.
Also es kann nur an den JFileChooser liegen.
Ich versuche mich schon seit über 6 Stunden daran dieses Problem zu lösen, aber irgendwie kopiert er nicht die volle Datei.
Hoffe jemand kennt eine Lösung zu dem Problem, wenn ihr weiteren Code haben wollt, kann ich ihn noch zusätzlich senden.

MfG:
Florilu
 

hendl

Erfahrenes Mitglied
#3
Hi
Hast du in der Copy Methode auch alle den FileOutPutStream oder deinen Writer mit
Java:
fos.flush();
fos.close();
oder überhaupt das File am Ende wieder geschlossen?