Questão de Programação — Programação Orientada a Objetos — Quadrix 2023
- Código
- qg029853
- Banca
- Quadrix
- Órgão
- CRQ 4ª Região-SP
- Ano
- 2023
- Nível
- Superior
- Cargo
- Profissionais de Atividade de Suporte - Analista de Sistemas (Rede)
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: E — ERRADO. A afirmação está incorreta porque o método BufferedWriter() não retorna o número de blocos lidos; na verdade, BufferedWriter é uma classe (em Java, por exemplo) que fornece um buffer para escrita eficiente em fluxos de caracteres, e o método que retorna o número de blocos lidos seria algo como read() de um BufferedReader ou read(byte[]) de um InputStream. A função principal de BufferedWriter é escrever dados de forma eficiente, não ler.
O enunciado mistura conceitos de diferentes classes de I/O (entrada/saída). Vamos entender o que cada uma faz:
BufferedWriter: é uma classe que escreve texto em um fluxo de saída (como um arquivo), usando um buffer para melhorar a performance. Ela não lê nada.
BufferedReader: é a classe complementar, que lê texto de um fluxo de entrada, também com buffer.
Métodos de leitura: em Java, read() retorna um caractere (ou -1 se o fim do fluxo foi atingido), e read(char[], int, int) retorna o número de caracteres lidos. Em C, fread() retorna o número de blocos lidos.
A confusão da banca é clássica: trocar a função de escrita pela de leitura e ainda atribuir a ela o retorno de "número de blocos lidos", que é uma característica de funções de leitura de baixo nível (como fread em C).
A afirmação está errada por dois motivos:
BufferedWriter é para escrita, não leitura: sua função é bufferizar a escrita de caracteres, melhorando a eficiência ao reduzir o número de chamadas ao sistema operacional. O método write() é o principal, e não há retorno de "blocos lidos".
O retorno de "número de blocos lidos" é de métodos de leitura: por exemplo, em C, fread() retorna o número de itens (blocos) lidos. Em Java, BufferedReader.read(char[], int, int) retorna o número de caracteres lidos, mas isso é da classe de leitura, não da de escrita.
Portanto, a alternativa está incorreta.
Gabarito: letra E
Link permanente: /questoes/qg029853