Introdução
Neste laboratório, aprenderemos como escrever dados em um arquivo usando a linguagem de programação Java. Escrever dados em um arquivo pode ser muito útil quando você precisa armazenar dados gerados pelo seu programa para uso futuro.
Abrir/Criar um Arquivo
O primeiro passo é abrir ou criar um arquivo no qual queremos escrever os dados. Criaremos um novo arquivo chamado output.txt no diretório ~/project.
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) {
Path path = Paths.get("~/project/output.txt");
}
}
Escrever uma string em um arquivo
Agora que temos nosso arquivo aberto, podemos escrever uma string nele. Isso é feito usando o método Files.write().
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
public class Main {
public static void main(String[] args) throws IOException {
Path path = Paths.get("~/project/output.txt");
String content = "This is some text that we want to write to the file";
Files.write(path, content.getBytes());
}
}
Aqui, estamos escrevendo uma string no arquivo convertendo-a em bytes e passando-a para o método Files.write(). Observe que precisamos usar o método getBytes() para converter a string em bytes.
Para executar o código acima em seu terminal, primeiro, você precisa navegar até o diretório do seu projeto no terminal. Em seguida, execute o seguinte comando:
javac Main.java && java Main
Escrever uma Lista de strings em um arquivo
Também podemos escrever uma lista de strings no arquivo usando o método Files.write(), da seguinte forma:
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
Path path = Paths.get("~/project/output.txt");
List<String> lines = Arrays.asList("This is line 1", "This is line 2", "This is line 3");
Files.write(path, lines, StandardCharsets.UTF_8);
}
}
Aqui, estamos escrevendo uma lista de strings no arquivo. Observe que estamos usando uma versão sobrecarregada do método Files.write() que recebe uma lista de strings como parâmetro.
Para executar o código acima para escrever uma lista de strings no arquivo, primeiro, você precisa navegar até o diretório do seu projeto no terminal. Em seguida, execute o seguinte comando:
javac Main.java && java Main
Anexar a um arquivo
Se você deseja escrever dados em um arquivo sem sobrescrever os dados existentes no arquivo, pode usar a opção StandardOpenOption.APPEND ao abrir o arquivo. Isso anexará quaisquer novos dados ao final do arquivo.
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
import java.nio.file.StandardOpenOption;
public class Main {
public static void main(String[] args) throws IOException {
Path path = Paths.get("~/project/output.txt");
List<String> lines = Arrays.asList("This is line 4", "This is line 5", "This is line 6");
Files.write(path, lines, StandardCharsets.UTF_8, StandardOpenOption.APPEND);
}
}
Aqui, adicionamos a opção StandardOpenOption.APPEND ao método Files.write(), que informa ao Java para anexar novos dados ao final do arquivo, em vez de sobrescrever quaisquer dados existentes.
Para executar a operação de anexação, primeiro, você precisa navegar até o diretório do seu projeto no terminal. Em seguida, execute o seguinte comando:
javac Main.java && java Main
Fechar o arquivo
Finalmente, precisamos fechar o arquivo usando o método Files.close(). Isso garantirá que quaisquer dados em buffer sejam gravados no arquivo antes que ele seja fechado.
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
import java.nio.file.StandardOpenOption;
public class Main {
public static void main(String[] args) throws IOException {
Path path = Paths.get("~/project/output.txt");
String content = "This is some text that we want to write to the file";
Files.write(path, content.getBytes());
Files.write(path, System.lineSeparator().getBytes(), StandardOpenOption.APPEND);
Files.write(path, "This is a new line".getBytes(), StandardOpenOption.APPEND);
Files.close();
}
}
Resumo
Neste laboratório, aprendemos como escrever dados em um arquivo usando a classe Files do Java. Vimos como escrever uma string em um arquivo, escrever uma lista de strings em um arquivo, anexar a um arquivo e fechar um arquivo. Esperamos que agora você possa escrever um arquivo facilmente com a ajuda da classe Files do Java.



