Ajuda pra gerar binario!

Ola pessoal,

Preciso fazer um programa que gere os binarios (00110) de um arquivo qualquer e depois eu pegue esses binarios e restaure o arquivo.

Á dúvida é a seguinte, como eu converto um .exe por exemplo pra binário??
e depois de convertido como eu restauro ele a partir dos binarios??

Muito Obrigado

Cara, que dúvida cruel essa! Esses dias eu estava lendo que para inserir uma imagem num banco de dados também seria necessário converter a imagem pra binário!!! COmplicado :slight_smile:

Sera que tem como fazer isso??

Alguem da uma luz ai!

Falowww

Mas todo o arquivo é binário…

Como vc converte pra jpeg uma imagem jpeg ?

Que todo arquivo la no fundo é binário isso eu sei, mas como eu faço pra ler os (01010011) dos arquivos??

Valeu

[quote=sanson]Que todo arquivo la no fundo é binário isso eu sei, mas como eu faço pra ler os (01010011) dos arquivos??

Valeu

[/quote]

Usa a classe java.lang.FileInputStream.

ola pessoal, td bem?

nao entendi mto bem a duvida de vcs… vcs querem, por exemplo, pegar uma imagem fornecida pelo usuario, converter ela em bytes e salvar em um banco de dados por exemplo?

Seguinte pessoal,

 Dentro de um computador tudo é binario,

ou seja, tudo pode, e é representado, por 2 valores…

0 para false (desligado)
1 para true (ligado)…

pois bem…esse é um fundamento que tem que estar cravado na cabeça de todo programador…

para facilitar a nossa vida, a IBM agrupou um quantidade desses valores
e a chamou de byte…para cada valor foi dado o nome de bit…

resumindo… 1 byte = 8 bits

TUDO (imagens,arquivos de texto,objetos java,*.EXE…etc) é constituido por um grupo de bytes (array)

então quando alguem estiver falando para você converter algo…qualquer coisa…em binario, ele esta querendo que você carregue os bytes desta coisa para dentro do programa…

existem 1000000 de maneiras de fazer isso…mas todas elas acabam
na mesma estrutura… um array de bytes…ou seja, byte[].

Abs,

[quote=dyorgio]Seguinte pessoal,

 Dentro de um computador tudo é binario,

ou seja, tudo pode, e é representado, por 2 valores…

0 para false (desligado)
1 para true (ligado)…

pois bem…esse é um fundamento que tem que estar cravado na cabeça de todo programador…

para facilitar a nossa vida, a IBM agrupou um quantidade desses valores
e a chamou de byte…para cada valor foi dado o nome de bit…

resumindo… 1 byte = 8 bits

TUDO (imagens,arquivos de texto,objetos java,*.EXE…etc) é constituido por um grupo de bytes (array)

então quando alguem estiver falando para você converter algo…qualquer coisa…em binario, ele esta querendo que você carregue os bytes desta coisa para dentro do programa…

existem 1000000 de maneiras de fazer isso…mas todas elas acabam
na mesma estrutura… um array de bytes…ou seja, byte[].

Abs,
[/quote]

E como fazer isso??? como fazer esse armazenamento em valor binário e depois recuperar a imagem(ou arquivo) a partir desse binario???
curioooooso :oops:

eu to com o nosso amigo Louds, a classe java.lang.FileInputStream, e FileOutputStream, com essas classes vc consegue ler e gravar Objetos(binarios) no disco.

import java.io.*;

class Persistencia {

public void escreveObjeto(ListaDeProdutos lista)
{
	
	try
	{
		ObjectOutputStream escreve = new ObjectOutputStream(new FileOutputStream("c:/produtos"));
		escreve.writeObject(lista);
		escreve.close();
	}
	catch(IOException e  )
	{
		System.out.println("erro!") ;
	}
}

public ListaDeProdutos leObjeto()
{

	ListaDeProdutos lista = new ListaDeProdutos();

	try
	{
		ObjectInputStream le = new ObjectInputStream(new FileInputStream("c:/produtos"));
		lista = (ListaDeProdutos) le.readObject();
		le.close();
	}
	catch(IOException e  )
	{
		System.out.println("erro!") ;
	}
	catch(ClassNotFoundException c)
	{
		System.out.println("class!") ;
	}

	return lista ;	
}

}

Neste caso, por Exemplo a classe ListaDeProdutos tem que ser Serializable

não sei se ra isso que vc queria fazer.

[quote=marciano]eu to com o nosso amigo Louds, a classe java.lang.FileInputStream, e FileOutputStream, com essas classes vc consegue ler e gravar Objetos(binarios) no disco.

import java.io.*;

class Persistencia {

public void escreveObjeto(ListaDeProdutos lista)
{
	
	try
	{
		ObjectOutputStream escreve = new ObjectOutputStream(new FileOutputStream("c:\\produtos"));
		escreve.writeObject(lista);
		escreve.close();
	}
	catch(IOException e  )
	{
		System.out.println("erro!") ;
	}
}

public ListaDeProdutos leObjeto()
{

	ListaDeProdutos lista = new ListaDeProdutos();

	try
	{
		ObjectInputStream le = new ObjectInputStream(new FileInputStream("c:/produtos"));
		lista = (ListaDeProdutos) le.readObject();
		le.close();
	}
	catch(IOException e  )
	{
		System.out.println("erro!") ;
	}
	catch(ClassNotFoundException c)
	{
		System.out.println("class!") ;
	}

	return lista ;	
}

}

Neste caso, por Exemplo a classe ListaDeProdutos tem que ser Serializable

não sei se ra isso que vc queria fazer.[/quote]

Bom, exatamente o que foi pedido é o seguinte:
Você pega um arquivo qualquer de entrada…um jpg por exemplo! transforma ele em dados, grava em um banco de dados…e depois quando precisar recupera do banco de dados…e converte novamente no JPG…
Agora…como faz isso??? :shock:

ola,

suponhamos que vc tenha um array de bytes que representa a imagem.
para converter esse array para um objeto image por exemplo, basta fazer:

 Toolkit toolkit = Toolkit.getDefaultToolkit();
 Image image = toolkit.createImage( array );

Há também como extrair a imagem e gerar um arquivo usando funções nativas do sgbd que vc esta utilizando. Por exemplo, no postgres,
lo_export( ‘c:\imagem.jpg’ ) faz com que esse arquivo seja criado com o com os bytes que voce escolher. Para o postgres, há uma api especial
pra fazer o gerenciamento de large objects:

http://www.javalinux.com.br:8080/javalinux/pg74/jdbc.html

espero ter ajudado
ate

po…massa o assunto…dyorgio boa sua resposta alguns programadores esquecem do velho 01, so nao gostei qdo vc falou do array… uuauh odeio eles rs!!