Como baixar e usar IOUtils em Java
Se você estiver trabalhando com operações de entrada/saída em Java, como ler de um arquivo, gravar em um soquete de rede, copiar dados de um fluxo para outro ou comparar o conteúdo de dois fluxos, você pode acabar escrevendo muitos códigos padrão e manipulando exceções. Não seria bom se houvesse uma maneira de simplificar essas tarefas comuns e tornar seu código mais conciso e legível?
download ioutils
Bem, há uma maneira. É chamado IOUtils, e é uma classe que fornece métodos utilitários para operações de entrada/saída. Neste artigo, mostraremos como baixar e usar IOUtils em seus projetos Java.
O que é IOUtils?
IOUtils é uma classe que fornece métodos utilitários para operações de entrada/saída
IOUtils é uma classe que pertence ao biblioteca, que é uma coleção de classes e utilitários que lidam com a funcionalidade de entrada/saída. IOUtils contém métodos estáticos que funcionam em InputStream, OutputStream, Leitor, e Escritor objetos. Esses métodos podem ajudá-lo a executar tarefas comuns, como:
Fechando um fluxo silenciosamente, ignorando nulos e exceções
Lendo dados de um stream em uma matriz de bytes, uma matriz de caracteres ou uma String
Gravar dados de uma matriz de bytes, uma matriz de caracteres ou uma String em um fluxo
Copiando todos os dados de um stream para outro
Comparando o conteúdo de dois streams para igualdade
Convertendo entre fluxos de bytes e caracteres usando diferentes codificações
E mais...
Todos os métodos em IOUtils que leem de um fluxo são armazenados em buffer internamente, o que significa que você não precisa usar um BufferedInputStream ou um BufferedReader. O tamanho do buffer padrão é 4K, mas você também pode especificar seu próprio tamanho de buffer, se necessário.
IOUtils faz parte da biblioteca Apache Commons IO
Como mencionado anteriormente, o IOUtils faz parte da biblioteca Apache Commons IO, que é um projeto de código aberto mantido pela Apache Software Foundation.A biblioteca contém muitas outras classes e utilitários úteis para operações de entrada/saída, como:
FileUtils, que fornece métodos para trabalhar com arquivos e diretórios
FilenameUtils, que fornece métodos para manipular nomes de arquivos
FileSystemUtils, que fornece métodos para acessar informações do sistema de arquivos
LineIterator, que fornece um iterador sobre as linhas de um Leitor
TeeInputStream e TeeOutputStream, que permitem gravar dados em vários fluxos de uma só vez
BOMInputStream e BOMOutputStream, que lidam com marcas de ordem de byte em fluxos Unicode
EndianUtils, que fornece métodos para converter entre ordens de bytes big-endian e little-endian
ClosedInputStream e ClosedOutputStream, que são fluxos fictícios que estão sempre fechados
NullInputStream, NullOutputStream, NullReader, e NullWriter, que são streams fictícios que não fazem nada
E mais...
Você pode encontrar a lista completa de classes e utilitários no .
IOUtils pode simplificar tarefas comuns, como leitura, gravação, cópia e comparação de fluxos
Para ilustrar como IOUtils pode simplificar tarefas comuns, vejamos alguns exemplos de uso de métodos IOUtils. Para cada exemplo, mostraremos o código sem usar IOUtils e o código usando IOUtils e compararemos a diferença.
Como baixar IOUtils?
Você precisa adicionar o Apache Commons IO como uma dependência ao seu projeto
Para usar o IOUtils, você precisa baixar e adicionar o Apache Commons IO como uma dependência ao seu projeto. Existem diferentes maneiras de fazer isso, dependendo da ferramenta de construção que você está usando. Aqui estão algumas das formas mais comuns:
Usando o Maven
Se você estiver usando o Maven como sua ferramenta de compilação, poderá adicionar o Apache Commons IO como uma dependência em seu pom.xml arquivo. Você precisa especificar o ID do grupo, o ID do artefato e a versão da biblioteca. Por exemplo, para usar a versão mais recente (2.11.0) do Apache Commons IO, você pode adicionar a seguinte dependência:
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.11.0</version> </dependency>
O Maven baixará automaticamente e adicionará a biblioteca ao classpath do seu projeto.
Usando o Gradle
Se você estiver usando o Gradle como sua ferramenta de compilação, poderá adicionar o Apache Commons IO como uma dependência em seu build.gradle arquivo. Você precisa especificar o ID do grupo, o nome e a versão da biblioteca. Por exemplo, para usar a versão mais recente (2.11.0) do Apache Commons IO, você pode adicionar a seguinte dependência:
dependencies implementação 'commons-io:commons-io:2.11.0'
O Gradle baixará e adicionará automaticamente a biblioteca ao caminho de classe do seu projeto.
Usando o arquivo Jar
Se você não estiver usando nenhuma ferramenta de construção, você pode baixar o arquivo jar do Apache Commons IO do . Você precisa escolher a versão da biblioteca que deseja usar e baixar o arquivo binário de distribuição. Por exemplo, para usar a versão mais recente (2.11.0) do Apache Commons IO, você pode baixar o arquivo commons-io-2.11.0-bin.zip. Então, você precisa descompactar o arquivo e copiar o arquivo jar commons-io-2.11.0.jar para o caminho de classe do seu projeto.
Como usar IOUtils?
Você precisa importar org.apache.commons.io.IOUtils em seu código
Para usar IOUtils em seu código, você precisa importar a classe org.apache.commons.io.IOUtils. Você pode usar uma única instrução de importação ou uma instrução de importação curinga. Por exemplo:
// Instrução de importação única import org.apache.commons.io.IOUtils; // Instrução de importação curinga import org.apache.commons.io.*;
Depois de importar IOUtils, você pode acessar seus métodos estáticos usando o nome da classe seguido de um ponto e o nome do método. Por exemplo:
// Usando uma única instrução de importação IOUtils.closeQuietly(inputStream); // Usando a instrução de importação curinga closeQuietly(inputStream);
Você pode usar vários métodos de IOUtils para diferentes propósitos
Conforme mencionado anteriormente, IOUtils fornece muitos métodos utilitários para operações de entrada/saída. Você pode usar esses métodos para diferentes propósitos, dependendo do que deseja alcançar. Aqui estão alguns exemplos de uso dos métodos IOUtils:
Exemplos de uso de métodos IOUtils
PropósitoMétodoDescriçãoExemplo
Fechando um fluxo silenciosamentecloseQuietly(Closeable closeable)Fecha um fluxo silenciosamente, ignorando nulos e exceções.// Sem usar IOUtils tente if (inputStream != null) inputStream.close(); catch (IOException e) // Tratar exceção // Usando IOUtils IOUtils.closeQuietly(inputStream);
Lendo dados de um stream em uma matriz de bytestoByteArray(entrada InputStream)Lê dados de um fluxo em uma matriz de bytes.// Sem usar IOUtils ByteArrayOutputStream output = new ByteArrayOutputStream(); byte[] buffer = novo byte[4096]; int n; while ((n = inputStream.read(buffer)) != -1) output.write(buffer, 0, n); byte[] dados = output.toByteArray(); // Com o uso de IOUtils byte[] data = IOUtils.toByteArray(inputStream);
Lendo dados de um stream em uma StringtoString(entrada InputStream, codificação Charset)Lê dados de um fluxo em uma String, usando a codificação especificada.// Sem usar IOUtils StringBuilder builder = new StringBuilder(); Leitor BufferedReader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)); Linha de corda; while ((line = reader.readLine()) != null) builder.append(line).append("\n"); String texto = builder.toString(); // Com o uso de IOUtils String text = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
Gravando dados de uma matriz de bytes em um fluxowrite(byte[] dados, saída OutputStream)Grava dados de uma matriz de bytes em um fluxo.// Sem usar IOUtils output.write(data); // Com o uso de IOUtils IOUtils.write(data, output);
Gravando dados de uma String em um streamwrite(String data, OutputStream output, Charset encoding)Grava dados de uma String em um fluxo, usando a codificação especificada.// Sem usar IOUtils output.write(data.getBytes(StandardCharsets.UTF_8)); // Usando IOUtils IOUtils.write(data, output, StandardCharsets.UTF_8);
Copiando todos os dados de um stream para outrocopy(entrada InputStream, saída OutputStream)Copia todos os dados de um fluxo para outro.// Sem usar IOUtils byte[] buffer = new byte[4096]; int n; while ((n = inputStream.read(buffer)) != -1) outputStream.write(buffer, 0, n); // Com o uso de IOUtils IOUtils.copy(inputStream, outputStream);
Comparando o conteúdo de dois streams para igualdadecontentEquals(InputStream input1, InputStream input2)Compara o conteúdo de dois fluxos de igualdade.// Sem usar IOUtils boolean equal = true; int b1, b2; while ((b1 = input1.read()) != -1 && (b2 = input2.read()) != -1) if (b1 != b2) equal = false; quebrar; if (igual && input1.read() != input2.read()) igual = false; // Com o uso de IOUtils boolean equal = IOUtils.contentEquals(input1, input2);
Conclusão
Neste artigo, aprendemos como baixar e usar IOUtils em Java. Vimos que IOUtils é uma classe que fornece métodos utilitários para operações de entrada/saída. Também vimos alguns exemplos de como IOUtils podem simplificar tarefas comuns, como leitura, gravação, cópia e comparação de fluxos. Esperamos que este artigo tenha ajudado você a entender e apreciar os benefícios de usar IOUtils em seus projetos Java.
Se você tiver alguma dúvida ou feedback, sinta-se à vontade para deixar um comentário abaixo. Obrigado por ler!
perguntas frequentes
P: Qual é a diferença entre fecharSilenciosamente() e fechar() métodos?
R: O fecharSilenciosamente() O método fecha um fluxo silenciosamente, ignorando nulos e exceções. O fechar() O método fecha um fluxo normalmente, lançando uma exceção se ocorrer um erro. O fecharSilenciosamente() O método é útil quando você não se preocupa com o resultado do fechamento de um fluxo ou quando deseja evitar o tratamento de exceções.
P: Qual é a diferença entre toByteArray() e toBufferedInputStream() métodos?
R: O toByteArray() O método lê dados de um fluxo em uma matriz de bytes. O toBufferedInputStream() O método lê dados de um fluxo em um fluxo de entrada em buffer. O toByteArray() O método é útil quando você deseja armazenar os dados na memória ou quando precisa acessar os dados aleatoriamente. O toBufferedInputStream() O método é útil quando você deseja reutilizar os dados em outro fluxo ou quando precisa acessar os dados sequencialmente.
P: Qual é a diferença entre para sequenciar() e readLines() métodos?
R: O para sequenciar() O método lê dados de um fluxo em uma String, usando a codificação especificada. O readLines() O método lê dados de um fluxo em uma lista de Strings, uma para cada linha, usando a codificação especificada. O para sequenciar() O método é útil quando você deseja armazenar os dados como uma única String ou quando não se importa com as quebras de linha. O readLines() O método é útil quando você deseja armazenar os dados como uma lista de Strings ou quando precisa processar cada linha separadamente.
P: Qual é a diferença entre cópia de() e copyLarge() métodos?
R: O cópia de() O método copia todos os dados de um fluxo para outro, usando um buffer de 4K internamente. O copyLarge() O método copia todos os dados de um fluxo para outro, usando um buffer maior internamente. O cópia de() método é adequado para a maioria dos casos, mas o copyLarge() método pode ser mais eficiente para fluxos muito grandes.
P: Qual é a diferença entre conteúdoEquals() e contentEqualsIgnoreEOL() métodos?
R: O conteúdoEquals() O método compara o conteúdo de dois fluxos para igualdade, byte por byte. O contentEqualsIgnoreEOL() O método compara o conteúdo de dois fluxos quanto à igualdade, ignorando as diferenças nos caracteres de fim de linha. O conteúdoEquals()contentEqualsIgnoreEOL()
0517a86e26
Comments