Erro ao deletar arquivo

Boa tardepessoal!
Seguinte, criei um código de teste para gerar um backup do meu banco de dados (mysql), gerar um zip do arquivo de backup e depois de gerado o zip quero deletar o arquivo original por ele gerado (.sql).
O erro é que quando eu executo o método .delete() do arquivo o sistema diz que não consegue achar o arquivo, mas o mesmo está lá, ele existe sim e o caminho está correto.
Suspeito eu que deva ser por que eu não estou fechando os Streams utilizados para realizar o procedimento completo.
Não reparem o código não, é que eu fiz meio que montando de acordo com um tutorial daqui do fórum mas prometo que depois vou arrumar o código, tratar as exceptions etc.
Lá vai:

public static final int TAMANHO_BUFFER = 2048;
	
	/**
	 * @param args
	 * @throws ParseException
	 * @throws IOException 
	 */
	public static void main(String[] args) throws ParseException, IOException {
		
		StringBuilder fileName = getFileName();
		File diretorio = new File("C:\\Backups");
		File backupSqlFile = new File("C:\\Backups\\" + fileName);
		
		if ( !diretorio.isDirectory() ) 
			new File("C:\\Backups").mkdir();
		
		try {
			// Cria o backup
			Runtime.getRuntime().exec("cmd /c mysqldump -u root --password=*** --databases db > " + backupSqlFile);
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		FileOutputStream fos = new FileOutputStream(backupSqlFile.getAbsolutePath().replace(".sql", ".zip"));
		BufferedOutputStream bos = new BufferedOutputStream(fos, TAMANHO_BUFFER);
		ZipOutputStream zos = new ZipOutputStream(bos);
		
		String caminhoEntradaZip = null;
		int idx = backupSqlFile.getAbsolutePath().indexOf(backupSqlFile.getParent());
		if ( idx >= 0 ) {
			caminhoEntradaZip = backupSqlFile.getAbsolutePath().substring( idx + backupSqlFile.getParent().length() + 1 );
		}
		
		ZipEntry entry = new ZipEntry(caminhoEntradaZip);
		zos.putNextEntry(entry);
		zos.setMethod(ZipEntry.DEFLATED);
		
		FileInputStream fis = new FileInputStream(backupSqlFile);
		BufferedInputStream bis = new BufferedInputStream(fis, TAMANHO_BUFFER);
		int bytesLidos = 0;
		byte buffer[] = new byte[TAMANHO_BUFFER];
		while ( ( bytesLidos = bis.read( buffer, 0, TAMANHO_BUFFER ) ) != -1 ) {
			zos.write(buffer, 0, bytesLidos);
		}
		
		bis.close();
		fis.close();
		zos.close();
			
	}

Vlw!!!