

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Listar fluxos
<a name="kinesis-using-sdk-java-list-streams"></a>

Os streams têm como escopo a AWS conta associada às AWS credenciais usadas para instanciar o cliente Kinesis Data Streams e também a região especificada para o cliente. Uma conta da AWS pode ter vários fluxos ativos ao mesmo tempo. É possível listar os fluxos no console do Kinesis Data Streams ou de forma programática. O código nesta seção mostra como listar todos os streams da sua AWS conta. 

```
ListStreamsRequest listStreamsRequest = new ListStreamsRequest();
listStreamsRequest.setLimit(20); 
ListStreamsResult listStreamsResult = client.listStreams(listStreamsRequest);
List<String> streamNames = listStreamsResult.getStreamNames();
```

Este exemplo de código primeiro cria uma nova instância de `ListStreamsRequest` e chama seu método `setLimit` para especificar que um máximo de 20 fluxos devem ser retornados para cada chamada a `listStreams`. Se um valor não for especificado para `setLimit`, o Kinesis Data Streams retornará um número de fluxos menor ou igual ao número na conta. Em seguida, o código passa `listStreamsRequest` ao método `listStreams` do cliente. O valor de retorno `listStreams` é armazenado em um objeto `ListStreamsResult`. O código chama o método `getStreamNames` para esse objeto e armazena os nomes de fluxo retornados na lista `streamNames`. Observe que o Kinesis Data Streams pode retornar menos fluxos do que o limite especificado, mesmo quando houver um número maior de fluxos na conta e na região. Para garantir a recuperação de todos os fluxos, use o método `getHasMoreStreams` como descrito no próximo exemplo de código. 

```
while (listStreamsResult.getHasMoreStreams()) 
{
    if (streamNames.size() > 0) {
      listStreamsRequest.setExclusiveStartStreamName(streamNames.get(streamNames.size() - 1));
    }
    listStreamsResult = client.listStreams(listStreamsRequest);
    streamNames.addAll(listStreamsResult.getStreamNames());
}
```

Esse código chama o método `getHasMoreStreams` para `listStreamsRequest` a fim de verificar se há fluxos adicionais disponíveis além dos que foram retornados na chamada inicial a `listStreams`. Se houver, o código chamará o método `setExclusiveStartStreamName` com o nome do último fluxo que foi retornado na chamada anterior a `listStreams`. O método `setExclusiveStartStreamName` faz com que a próxima chamada a `listStreams` comece depois desse fluxo. Em seguida, o grupo de nomes de fluxo retornados pela chamada é adicionado à lista `streamNames`. Esse processo continua até que todos os nomes de fluxo tenham sido coletados na lista.

 Os streams retornados por `listStreams` podem estar em um dos seguintes estados: 
+ `CREATING`
+ `ACTIVE`
+ `UPDATING`
+ `DELETING`

É possível verificar o estado de um fluxo usando o método `describeStream`, como mostrado na seção anterior, [Crie um stream usando o APIs](kinesis-using-sdk-java-create-stream.md).