# ResultSets e colunas de fluxo

Se o objeto subjacente também for da classe OutputStream, getBinaryStream retornará o objeto diretamente.

Para obter um campo do ResultSet utilizando colunas de fluxo, podem ser utilizados os métodos getXXXStream se o tipo suportá-los. Para obter uma lista dos tipos que suportam vários fluxos deve ser consultado Tipos de dado JDBC que permitem fluxo (Consulte também Mapeamento de java.sql.Types em tipos SQL.)

Os dados de uma coluna com tipo de dado suportado podem ser trazidos na forma de fluxo, independentemente de terem sido armazenados como um fluxo.

O exemplo a seguir mostra como o usuário pode trazer uma coluna LONG VARCHAR na forma de fluxo:

    // trazer os dados como um fluxo
    ResultSet rs = s.executeQuery("SELECT b FROM minha_tabela");
    while (rs.next()) {
        // utilizar java.io.InputStream para trazer os dados
        java.io.InputStream ip = rs.getAsciiStream(1);
        // processar o fluxo -- esta é apenas uma forma genérica
        // de se mostrar os dados
        int c;
        int tamanhoColuna = 0;
        byte[] buff = new byte[128];
        for (;;) {
            int size = ip.read(buff);
            if (size == -1)
                break;
            tamanhoColuna += size;
            String chunk = new String(buff, 0, size);
            System.out.print(chunk);
        }
    }
    rs.close();
    s.close();
    conn.commit();

Tópico pai: java.sql.ResultSet