Dateien (bilder oder pdfs) öffnen und unter neuem pfad speichern

soulerino

Mitglied
Hallo zusammen,

ich bin neu hier und weiß nicht ob es diese Frage schonmal gab, also entschuldigung dafür wenn es diesen Thread schon gibt.

Mein Problem ist folgendes, bzw. meine Frage:
Ich habe einen FileOpen-Dialog erstellt, mit dem ich mir irgendeine Datei "holen" kann.
So da lese ich den dateinamen und den pfad auch gleichzeitig aus.

Meine Frage ist nun wie kriege ich diese Datei gespeichert?
mit einem DataOutputStream geht das ja nicht, da man damit nur text und "byte" u.s.w und keine bilder usw. speichern kann ...

Hat jemand einen Rat oder Beispielcode?

Gruß der soulerino
 
Ich glaube ich versteh nicht ganz?

wie könnte das denn ungefähr aussehen?!
ich stehe hier grad auf ner 10km breiten Leitung ... ich seh den Baum vor lauter Wäldern nicht mehr ;)
 
Also möchtest du prinizpiell einfach eine Datei kopieren?

Dann such doch mal nach copy file java in einer Suchmaschine deiner Wahl. Dann findest du ein Haufen code.

Und was matdacat meinte ist dass natürlich auch Bilder aus Bytes bestehen wie überhaupt alle Dateien die es so gibt. Deswegen kann man ja unabhängig vom Inhalt eine Datei einfach kopieren.
 
Danke hab was gefunden was auch klappt.

nur noch eine kleine Frage:
Ich habe hier eine methode (beim opendialog) namens show() ... aber die wird mir als deprecated angezeigt ... gibt es da was aktuelleres?
 
ok ich nerve bestimmt schon aber irgendwie hab ich hier jetzt was ganz komisches.
Ich kann nur Daten kopieren, die sich in einem bestimmten Ordner befinden (in meinem workspace Ordner von Eclipse)
Code:
public void oeffnen()
{
     FileDialog openFileDialog = new FileDialog(this, "Datei öffnen", FileDialog.LOAD);
     openFIleDialog.show();

     String FileName = openFileDialog.getFile();

     path.setText(FileName); //path ist ein Textfeld in dem der Dateiname dann erscheint, von        dort hole ich mir den Namen unter was es gespeichert werden soll
}

public void copyFile(String source, String dest)
{
     FileInputStream in = new FileInputStream(source);
     FileOutputStream out = new FileOutputStream(dest);

     try{
              int b = in.read();
                    while (b != -1){
                              out.write(b);
                              b = in.read();
                    }
         }
         finally{
             in.close();
             out.close();
         }
         path.setText(""); //textfeld wird gelöscht als indikator dafür, dass das speichern erfolgreich war
}

public void doCopy(String Name)
{
      try
      {
           copyFile(path.getText() , "E:/.... (Ordner wo die Daten hin sollen)/" + name)
      }
      catch(IOException e)
      {
           System.out.println(e.getMessage());
      }
}
also ich habe 2 buttons:
einer womit der ein Dateiauswahldialog geöffnet wird und einer der dann die doCopy() ausführt.

und wie gesagt er kopiert nur daten aus einem bestimmten Ordner
 
Zuletzt bearbeitet:
Versuch mal:
fileName = openFileDialog.getDirectory() + File.separator + openFileDialog.getFile();
 
ne geht leider auch nicht ... so speichert er garnichts mehr.
sehr komisch.

ich hole mir damit ja nur den datei namen um ihn neu abzuspeichern.
irgendwie scheint er aber nur aus einem einzigen Ordner die daten zuzulassen ...

neeee sorry das ist bullshit was ich hier rede. sorry
ich glaube ich habe da den einen oder anderen wiederspruch drin ... ich werd mal weiterschauen.
falls jemandem was auffällt bitte melden ... ich hab hier schon langsam keine haare mehr aufm Kopf deswegen.

--------------------------------------

ok ich habe meine eigene Dummheit wieder gutgemacht.
danke trotzdem.
 
Zuletzt bearbeitet:
Hallo,

was steht denn in dem TextFeld drin, wenn du eine Datei ausgewählt hast. Steht da nur der Dateiname drin oder der ganze Pfad + Dateiname?


MFG

zEriX
 
Zurück