Hiho,
ich habe eine Frage zu folgendem Problem:
Ich will ein Datenbankbackup machen und möchte dieses als .sql Datei speichern.
Ich weiß, es gibt viele Möglichkeiten wie z.B. SELECT * INTO FILE... oder als Executeable mysqldump aufrufen.
Jedoch hab ich mich aus Anlass zur kompletten SIcherung SELECT* INTO FILE ausgeschlossen als auch dadurch, dass das Programm NICHT auf dem Rechner läuft, wo die Datenbank drauf ist, auch Executeable ausgeschlossen.
Deswegen hab ich den Kopf der Datei in einer .sql Datei gespeichert.
Diese wird in das .jar integriert.
Das Programm soll diese SQL Datei, BackupHeader.sql, auslesen und am besten kopieren und die Kopie weiterbearbeiten.
Mit
komme ich an den Pfad der Datei ran.
Als ich jedoch einen FileReader initialisieren will, der diese Datei ausliest, tritt ein Fehler auf:
Diese Fehlermeldung verstehe ich schon, nur ....wie löse ich das problem?
Hier ist Teil des Quellcodes:
(log ist ein Objekt der Klasse Log, welche mir zum debuggen dient, wie man sich aber auch bestimmt denken konnte ^^)
ich habe eine Frage zu folgendem Problem:
Ich will ein Datenbankbackup machen und möchte dieses als .sql Datei speichern.
Ich weiß, es gibt viele Möglichkeiten wie z.B. SELECT * INTO FILE... oder als Executeable mysqldump aufrufen.
Jedoch hab ich mich aus Anlass zur kompletten SIcherung SELECT* INTO FILE ausgeschlossen als auch dadurch, dass das Programm NICHT auf dem Rechner läuft, wo die Datenbank drauf ist, auch Executeable ausgeschlossen.
Deswegen hab ich den Kopf der Datei in einer .sql Datei gespeichert.
Diese wird in das .jar integriert.
Das Programm soll diese SQL Datei, BackupHeader.sql, auslesen und am besten kopieren und die Kopie weiterbearbeiten.
Mit
Java:
String path = ClassLoader.getSystemClassLoader().getResource("BackupHeader.sql").getPath();
Als ich jedoch einen FileReader initialisieren will, der diese Datei ausliest, tritt ein Fehler auf:
Code:
12:52:07 Information: file:/E:/Projekte/JavaAG/Berufsinformationswoche/jiw_admin/Release/StuBe%20Admin.jar!/BackupHeader.sql
12:52:07 ERROR: java.io.FileNotFoundException: file:\E:\Projekte\JavaAG\Berufsinformationswoche\jiw_admin\Release\StuBe%20Admin.jar!\BackupHeader.sql (Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch)
java.io.FileInputStream.open(Native Method)
java.io.FileInputStream.<init>(Unknown Source)
java.io.FileReader.<init>(Unknown Source)
Diese Fehlermeldung verstehe ich schon, nur ....wie löse ich das problem?
Hier ist Teil des Quellcodes:
Java:
File backupFile = null;
JFileChooser saveAsChooser = new JFileChooser();
saveAsChooser.setDialogType(JFileChooser.SAVE_DIALOG);
saveAsChooser.setCurrentDirectory(new File("").getAbsoluteFile());
if (saveAsChooser.showSaveDialog(rootPane) != JFileChooser.APPROVE_OPTION)
return;
// UNSICHER
backupFile = saveAsChooser.getSelectedFile();
String path = ClassLoader.getSystemClassLoader().getResource("BackupHeader.sql").getPath();
log.writeInformation(path);
File sqlHeadFile = new File(path);
File temp = new File("temp");
sqlHeadFile.renameTo(temp);
// /UNSICHER
try{
FileReader fReader = new FileReader(sqlHeadFile);
BufferedReader bReader = new BufferedReader(fReader);
String line = "";
FileWriter fWriter = new FileWriter(backupFile);
BufferedWriter bWriter = new BufferedWriter(fWriter);
while((line = bReader.readLine()) != null)
bWriter.write(line);
bWriter.close();
fWriter.close();
}
catch(Exception e){
log.writeExeption(e);
}
(log ist ein Objekt der Klasse Log, welche mir zum debuggen dient, wie man sich aber auch bestimmt denken konnte ^^)