E .txt .png em números binarios
Como trásformar numeros binarios em arquivo .txt .png
9 Respostas
Tem um conversor de binário para arquivo .png .txt ?
Supondo que vc tenha um array de bytes numa variável (ex.: byte[] arquivoQualquer), vc pode usar Apache Commons IO e tentar isso:
FileUtils.writeByteArrayToFile(new File("pathname"), arquivoQualquer);
Supondo que 00000001 e 01010101 são dois arquivos .txt ele me geraria quais arquivos . Uma dúvida, o nome do arquivos (que gera) seria igual ou diferente
Por que você não executa o código que o colega passou e vê por si próprio?
Não entendi o código não sei executar
Pode botar ele detalhado e um exemplo? Sou novo em programacao
Hey
Supondo que 00000001 e 01010101 são dois arquivos .txt ele me geraria quais arquivos . Uma dúvida, o nome do arquivos (que gera) seria igual ou diferente
Alguém me ajuda aí
Des de já agradeço.
Alguém responde.
Montém uns testes aqui para vc dá uma olhada e entender a diferença de “array de bytes” e “representação binária”:
// Obtém os bytes hexadecimais da palavra "teste"
byte[] bytes = "teste".getBytes();
// Imprime o hexadecimal referente a cada letra da palavra "teste"
for(byte b1 : bytes) {
System.out.println(b1);
}
System.out.println("---------------");
// Converte cada hex para binário
List<String> binaryArray = new ArrayList<>();
for(byte b1 : bytes) {
String s1 = String.format("%8s", Integer.toBinaryString(b1 & 0xFF)).replace(' ', '0');
System.out.println(s1);
binaryArray.add(s1);
}
System.out.println("---------------");
// Obtém o texto "teste" a partir dos array de bytes inicial
System.out.println(new String(bytes));
System.out.println("---------------");
// Obtém o array de bytes a partir da lista de binários e imprime a palavra "teste"
byte[] newBytes = new byte[binaryArray.size()];
int cont = 0;
for(String binary : binaryArray) {
int decimal = Integer.parseInt(binary, 2);
String hexStr = Integer.toString(decimal, 16);
newBytes[cont++] = (byte) Integer.parseInt(hexStr, 16);
}
System.out.println(new String(newBytes));
Ao pensar em transformar binário em arquivo da forma como vc está perguntando, não é utilizado a representação binária como está pensando, é utilizado o array de bytes do tal arquivo, e a conversão é feita da forma como postei:
Usando a biblioteca Apache Commons IO (por facilitar a operação)
FileUtils.writeByteArrayToFile(new File("pathname"), arquivoQualquer);
Ou pode fazer assim:
File file = new File("meuarquivo.png"); //Criamos um nome para o arquivo
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)); //Criamos o arquivo
bos.write(bytes); //Gravamos os bytes lá
bos.close(); //Fechamos o stream.
Em momento algum é usado os binários como está pensando, mas sim sua representação hexadecimal na forma de array.
Colegas do GUJ. Como é um assunto que não domino muito bem, por favor, sintam-se a vontade de agregar/corrigir algo que postei. Ficarei muito grato.