Bom,
Sempre vejo algumas necessidades, por exemplo, como escrever arquivos em disco e etc. Diante dessa necessidade vou começar a ampliar este tópico com exemplos básicos de java.
Vamos lá.
Como escrever arquivos a partir de um array de bytes. Nesse exemplo iremos conectar a um banco de dados, com JDBC, ler o resultado da consulta e escrever o arquivo em disco.
import java.io.File; import java.io.FileOutputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class leitor { public static void main(String[] args) { try { /** * Driver name do Postgresql. * Lembre de colocar o jar do Driver no classpath da aplicação */ Class.forName("org.postgresql.Driver"); /** * Criando a Conexão. * A chamada do método getConnection exige um * parametro String referente a URL de conexão com o banco * um parametro String referente ao Usuário do banco e outro parametro * String referente a Senha do banco. * */ String URL = "jdbc:postgresql://<ip_banco_dados>:5432/<nome_banco_dados>"; String username = "<username do banco>"; String password = "<password do banco>"; Connection connection = DriverManager.getConnection(URL,username,password); String query = "Select campo_bytea, nome_arquivo from schema.tabela"; PreparedStatement stmt = connection.prepareStatement(query); ResultSet rs = stmt.executeQuery(); byte[] b = null; while (rs.next()){ // Procurando o next do resultSet. É necessário para encontrar o primeiro // resultado da listagem b = rs.getBytes(1); // getBytes(1) refere-se a coluna "campo_bytea" // getString(2) refere-se a coluna "nome_arquivo" FileOutputStream fileOutputStream = new FileOutputStream( new File("<pasta destino>/"+rs.getString(2))); // Escrevendo o conteúdo em bytes dentro do arquivo criado fileOutputStream.write(b); fileOutputStream.close(); // Fechando o arquivo criado } } catch (Exception e) { e.printStackTrace(); } } }