Java gibt text nicht aus

S

Sasku

Gast
Hallo Leute,

ich bin immernoch dabei mein Backup-Programm zu schreiben, nachdem auf einmal die Klasse( welche zu 90 % fertig war ) einfach wie vom erdboden verschwunden ist musste ich die natürlich nochmal schreiben .. naja jetzt ist das Problem .. mein Programm ( besser gesagt die klasse ) findet das files Array irgendwie nicht ... ich wollte es Testweise ausgeben lassen .. tut es aber nicht .. deshalb funktioniert das Programm nicht .. ich finde den Fehler weshalb es die Filenamen ( besser gesagt die Pfade ) nicht ausgibt nicht ... kann mir da jemand helfen?


Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;


public class SaveListener implements ActionListener {

	public static String speicherort_t;
	private String[] dateiInText; 

	SimpleDateFormat time = new SimpleDateFormat("dd.MM.yyyy");										// Zeit wird für Zip formatiert
	Date currDate = new java.sql.Timestamp(Calendar.getInstance().getTime().getTime());				// aktuelles Datum wird genommen
	
		
	@Override
	public void actionPerformed(ActionEvent arg0) {
		
		dateiInText = new String[oFlaeche.model.getSize()];											// String Array "dateiInText" wird auf die Länge der Liste gesetzt
		 
				
				
				for ( int i = 0; i<oFlaeche.model.getSize(); i++) {									// For-Schleife ist für das zuweisen der Links in das String Array verantwortlich
					dateiInText[i] =  (String) oFlaeche.model.getElementAt(i);
	
					System.out.println(i);
					System.out.println(dateiInText[i]);
					
					}
		
		File[] files = new File[dateiInText.length];
		for ( int i = 0; i<dateiInText.length;i++) {
			files[i] = new File(dateiInText[i]);
			System.out.println(files[i]);
		}
//			System.out.println(files.length);
				
		speicherort_t = oFlaeche.speicherPfad_t.getText();
		zipFile(files, speicherort_t+"\\"+time.format(currDate)+".zip");							// ruft die Methode "zipFile" auf und setzt den Namen des ZipFiles
		
		
	}

	public static void zipFile(File[] files, String zipFilePath) {									// zum zippen der Dateien ... MAGIC .. ka wies geht xD
		
		
		
		try {
			FileOutputStream fileOutputStream = new FileOutputStream(zipFilePath);
			ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream);
			
			for ( int i = 0; i<files.length;i++	) {
			ZipEntry zipEntry = new ZipEntry(files[i].toString());
			zipOutputStream.putNextEntry(zipEntry);											// wobei ich den Code bis hier hin sogar verstehe .. 
			
			FileInputStream fileInputStream = new FileInputStream(files[i]);
			byte[] buf = new byte[1024];
			int bytesRead;
			
			while ((bytesRead = fileInputStream.read(buf)) > 0 ) {
				zipOutputStream.write(buf, 0, bytesRead);
			}																				// den vorangegangenen Code verstehe ich nicht .. btw .. eig nur die schleife
			}
			zipOutputStream.closeEntry();
			
			zipOutputStream.close();
			fileOutputStream.close();
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		
	}
}


Das ist jetzt die ganze Klasse ...

da die files nicht gefunden werden können .. kann ich von den Dateien auch kein backup machen und nicht ins zip-file schreiben .. kann mir da bitte jemand sagen, wie ich wieder auf die files zugreifen kann :(



mfg
Ergänzung ()

achja .. bitte nicht auf die Kommentare achten .. die sind aus einer älteren Version noch .. ^^
 
Bist du mit dem Debugger mal durchgegangen und geschaut, wo etwas schief läuft? Vielleicht gibt dein Model ja keine Elemente zurück und damit wäre dein Array leer und es würden auch keine Dateien gefunden/gezippt werden.
 
jaa .. aber danke .. jetzt ist das Problem anders behoben worden .. ich hab jetzt ne Methode dazu geschrieben die die \ ersetzt und jetzt wird's komischerweise angezeigt .. .^^
 
Ich bezweifel, das es überhaupt ein Model gibt.
 
Code:
import java.awt.GridLayout;
import java.io.File;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class oFlaeche extends JFrame {
	
	
	// Endung t = textfield l = label b = button 
	
	
	static JTextField speicherPfad_t ;
	static JList list;
	static DefaultListModel model;
	static JButton add_b;
	static JButton savepath_b;

	static int index=-1;
	
	public oFlaeche(){	
		setSize(700, 500);
		getContentPane().setLayout(new GridLayout(1,1));
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLocationRelativeTo(null);
		setTitle("Linked Control Panel");
		setResizable(false);
		
		JPanel content = new JPanel();										// Inhalts Panel
		content.setLayout(null);
		add(content);
		

		
		model = new DefaultListModel();
		
		
		list = new JList(model);											// List in der die Kritischen Dateien angezeigt werden
		list.setBounds(5,50,420,350);
		list.addListSelectionListener(new ItemListe());
		content.add(list);

doch es gibt model .. und es ist eigentlich alles da ...

Problem ist nur im SaveListener .. weil der vorhin einfach weg war ... ich weis selber nich wieso .. und einfach vom PC weg .. und jetzt muss ich den hald komplett neu schreiben ..
 
Code:
for ( int i = 0; i<dateiInText.length;i++) {
  files[i] = new File(dateiInText[i]);
  System.out.println(files[i]);
}
ändern in:
Code:
for ( int i = 0; i<dateiInText.length;i++) {
  files[i] = new File(dateiInText[i]);
  System.out.println(dateiInText[i]);
}
 
Die Änderung ändert an der Ausgabe aber nichts...
Ich verstehe auch nicht, warum hier mit File gearbeitet werden muss, es werden keine speziellen Funktionen genutzt.
 
Zurück
Oben