Avatar ·

Como ler todo o conteúdo de um InputStream para uma string em Kotlin?

Olá a todos! Recentemente comecei a estudar Kotlin e me deparei com a seguinte tarefa: preciso ler dados de um InputStream (por exemplo, de um arquivo ou resposta de rede) e convertê-los em uma string String comum. O problema é que estou acostumado com Java, onde para isso é necessário escrever muito código boilerplate com loops, StringBuilder e buffers. Em Kotlin, parece que existem maneiras mais concisas, mas não consigo encontrar um exemplo claro. Aqui está o que tentei: ```kotlin fun readFromStream(stream: InputStream): String { val bytes = stream.readBytes() return String(bytes) } ``` Mas isso causa confusão com a codificação, e não tenho certeza se é correto para streams grandes. Também ouvi falar de `.bufferedReader()` e `.readText()`, mas não entendo como aplicá-los corretamente. Preciso de uma solução que: 1. Funcione para qualquer InputStream (arquivo, socket, ByteArrayInputStream). 2. Considere a codificação (UTF-8 por padrão). 3. Não exija gerenciamento manual de buffers ou loops. 4. De preferência com o mínimo de