Grave o byte no arquivo em Java
-
Usando
FileOutputStream
para gravar byte em arquivo em Java -
Usando
java.nio.file
para gravar byte no arquivo -
Usando a biblioteca
Apache Commons IO
para escrever bytes em arquivos em Java
Este programa demonstra como gravar um array de bytes em um arquivo em Java. Esta tarefa pode ser executada usando FileOutputStream
e usando algumas bibliotecas mencionadas neste artigo.
Usando FileOutputStream
para gravar byte em arquivo em Java
A classe FileOutputStream
em Java é um fluxo de saída usado para gravar dados ou fluxo de bytes em um arquivo. O construtor FileOutputStream(File file)
cria um fluxo de saída de arquivo para gravar no arquivo representado pelo objeto File
file
, que criamos no código abaixo.
A variável s
do tipo String
é passada para o método getBytes()
, que converte a string em uma sequência de bytes e retorna um array de bytes. O método write()
leva a matriz de bytes como um argumento e grava b.length bytes do array de bytes b
para este fluxo de saída de arquivo.
Um arquivo com a extensão .txt
é criado no caminho fornecido e, se o abrirmos, podemos ver o mesmo conteúdo da string armazenada na variável s
.
import java.io.File;
import java.io.FileOutputStream;
public class ByteToFile {
public static void main(String args[]) {
File file = new File("/Users/john/Desktop/demo.txt");
try {
FileOutputStream fout = new FileOutputStream(file);
String s = "Example of Java program to write Bytes using ByteStream.";
byte b[] = s.getBytes();
fout.write(b);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Usando java.nio.file
para gravar byte no arquivo
O pacote Java NIO ( New I/O)
consiste em métodos estáticos que funcionam em arquivos, diretórios e principalmente no objeto Path
. O Path.get()
é um método estático que converte uma sequência de strings ou uma string de caminho em um Path. Ele simplesmente chama FileSystems.getDefault().getPath()
.
Assim, podemos escrever um array de bytes b
em um arquivo usando o método Files.write()
passando o caminho para o arquivo e a matriz de bytes convertida de uma string.
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class ByteToFile {
public static void main(String args[]) {
Path p = Paths.get("/Users/john/Desktop/demo.txt");
try {
String s = "Write byte array to file using java.nio";
byte b[] = s.getBytes();
Files.write(p, b);
} catch (IOException ex) {
System.err.format("I/O Error when copying file");
}
}
}
Usando a biblioteca Apache Commons IO
para escrever bytes em arquivos em Java
A dependência do maven para esta biblioteca é mencionada abaixo.
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
A biblioteca Apache Commons IO
tem a classe FilesUtils, tem o método writeByteArrayToFile()
. Este método pega o caminho de destino e os dados binários que estamos escrevendo. Se nosso diretório ou arquivo de destino não existir, eles serão criados. Se o arquivo existir, ele será truncado antes da gravação.
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.FileUtils;
public class ByteToFile {
public static void main(String args[]) {
{
File file = new File("doc.txt");
byte[] data =
"Here, we describe the general principles of photosynthesis"
.getBytes(StandardCharsets.UTF_8);
try {
FileUtils.writeByteArrayToFile(file, data);
System.out.println("Successfully written data to the file");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Produção:
Successfully written data to the file
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn