Copiando arquivos com java

Quero fazer um botão de Backup na minha aplicação. Nessa aplicação tenho arquivos de banco de dados, e queria que clicando um botão, estes arquivos fossem enviados pra o diskete ou cd… isso é possível de ser feito e alguém sabe como fazer isso???

[]´s

Mano eu tenho essa classe aki ela pega um diretorio, lista seus arkivos e comprimeos em .zip, compila e testa qualquer duvida ou ainda se funcionou post q te ajudo ai.

Falow …

import java.util.zip.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;

import java.util.Calendar;
import java.util.GregorianCalendar;

import java.text.DecimalFormat;

public class backup{
	
	public backup(){
		
		String filename = "backup";
	    JFileChooser fc = new JFileChooser(new File(filename));
	    ExampleFileFilter filter = new ExampleFileFilter();
		filter.addExtension("zip");
		filter.setDescription("Zip Files");
		filter.setExtensionListInDescription(false);
		fc.setFileFilter( filter );
	    fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
	    fc.setDragEnabled(false);
	    fc.setApproveButtonMnemonic('S');
	    fc.setApproveButtonToolTipText("Salvar Backup");
	    fc.setApproveButtonText("Salvar");
	    fc.setDialogTitle("Backup do Sistema");
	    
	    int result = fc.showOpenDialog(Teste.desktop);
		    
        if( result == JFileChooser.APPROVE_OPTION){
        	
	        File file = fc.getSelectedFile();
	        
	        if(file != null){
	        	
		    	byte[] buf = new byte[1024];
	    
			    try {
			    	File f = new File(lc.getConfig(1));
		        	String[] filenames = f.list();
		        	ZipOutputStream out = new ZipOutputStream(new FileOutputStream( file + getData() + ".zip"));
		    
		        
		        	for (int i=0; i<filenames.length; i++) {
		            	FileInputStream in = new FileInputStream(lc.getConfig(1) + "//" + filenames[i]);
		            	out.putNextEntry(new ZipEntry(filenames[i]));
		    
		            
		            	int len;
		            	while ((len = in.read(buf)) > 0) {
		                	out.write(buf, 0, len);
		            	}
		    
		            	out.closeEntry();
		            	in.close();
		        	}
		    
		        
		        	out.close();
		        	JOptionPane.showInternalMessageDialog(Teste.desktop, "Backup Criado com Sucesso", "Criando um Backup", JOptionPane.QUESTION_MESSAGE);
		        	
		    	} catch (IOException e) {
		    		JOptionPane.showInternalMessageDialog(Teste.desktop, "Não Possivel Criar Backup - Tente Novamente", "", JOptionPane.ERROR_MESSAGE);
		    		e.printStackTrace();
		    	}
			
	    	}
		}
	}
	
	public String getData(){
		
		Calendar cal = new GregorianCalendar();
		
		DecimalFormat dig = new DecimalFormat("00");
		
		return ("_" + dig.format( cal.get(Calendar.DAY_OF_MONTH)) + "_" + dig.format( cal.get(Calendar.MONTH) + 1) + "_" + dig.format( cal.get(Calendar.YEAR) - 2000));
	} 
}