CodeGym /Blogue Java /Random-PT /Java – Gravar em arquivo
John Squirrels
Nível 41
San Francisco

Java – Gravar em arquivo

Publicado no grupo Random-PT
Uma das tarefas mais comuns no desenvolvimento de software é a capacidade de ler e gravar arquivos. Em Java, escrever em um arquivo é um processo simples que pode ser feito usando classes e métodos integrados. Neste artigo, exploraremos como gravar em um arquivo usando Java e discutiremos as várias classes e métodos envolvidos. Java fornece classes integradas como FileWriter e PrintWriter para gravar em um arquivo em Java.

Exemplo de gravação em arquivo Java

Para começar, vejamos um exemplo simples de gravação em um arquivo em Java. Aqui está um exemplo de como escrever uma string em um arquivo em Java usando a classe FileWriter :

Classe FileWriter

A classe FileWriter é outra maneira de gravar em um arquivo em Java. É uma classe de fluxo de caracteres que permite gravar dados de caracteres em um arquivo. Aqui está um exemplo que demonstra como usar a classe FileWriter para escrever uma String em um arquivo:
import java.io.FileWriter;
import java.io.IOException;


// Main method for the string to file in java starts from here,
public class WriteToFileExample {
    public static void main(String[] args) {
        // create a string to write text to file
        String data = "Hello, world!";

        try {
            // create a FileWriter object with the file name
            FileWriter writer = new FileWriter("output.txt");

            // write the string to the file
            writer.write(data);

            // close the writer
            writer.close();

            System.out.println("Successfully wrote text to file.");

        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}
Neste exemplo, primeiro criamos um objeto String chamado data que contém o texto que queremos gravar em um arquivo. Em seguida, criamos um objeto FileWriter com o nome do arquivo no qual queremos gravar, neste caso denominado output.txt . A seguir, usamos o método write() do objeto FileWriter para gravar a string de dados no arquivo. Este método usa um argumento String contendo os dados a serem gravados. Por fim, fechamos o objeto FileWriter para liberar os recursos do arquivo e imprimimos uma mensagem de sucesso no console se a operação de gravação for bem-sucedida ou uma mensagem de erro se uma exceção for detectada. A classe FileWriter é uma maneira simples de gravar dados de caracteres em um arquivo em Java.

Classe FileOutputStream

A classe FileOutputStream é usada para gravar dados em um arquivo como um fluxo de bytes. Aqui está um exemplo:
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            FileOutputStream stream = new FileOutputStream("output.txt");
            byte[] bytesToWrite = textToWrite.getBytes();
            stream.write(bytesToWrite);
            stream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Neste exemplo, criamos um objeto FileOutputStream denominado stream com o nome de arquivo "output.txt" para gravação. Em seguida, convertemos a string textToWrite em uma matriz de bytes usando o método getBytes() e gravamos a matriz de bytes no objeto de fluxo usando o método write() . Finalmente, fechamos o objeto stream .

Classe BufferedWriter

A classe BufferedWriter é usada para gravar texto em um arquivo com recursos de buffer. Aqui está um exemplo:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
            writer.write(textToWrite);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Neste exemplo, criamos um objeto BufferedWriter denominado escritor com um objeto FileWriter que grava no arquivo "output.txt". Em seguida, usamos o método write() do objeto escritor para escrever textToWrite no arquivo. Finalmente, fechamos o objeto escritor .

Método WriteString()

O método writeString() é um método conveniente introduzido em Java 11 para escrever uma String em um arquivo usando a classe Files . Ele permite que você grave uma String em um arquivo em uma única linha de código. Aqui está um exemplo:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class WriteToFileExample {
    public static void main(String[] args) {
        // create a string to write to a file
        String data = "Hello, world!";

        // create a file object
        Path file = Paths.get("output.txt");

        try {
            // write the string to the file using writeString() method
            Files.writeString(file, data);

            System.out.println("Successfully wrote text to file.");

        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}
Neste exemplo, primeiro criamos um objeto String chamado data que contém o texto que queremos gravar em um arquivo. Em seguida, criamos um objeto Path denominado file que representa o arquivo no qual queremos gravar, neste caso, denominado "output.txt". A seguir, usamos o método Files.writeString() para gravar a string de dados no arquivo representado pelo objeto de arquivo . Este método leva dois argumentos: o objeto Path que representa o arquivo no qual gravar e o objeto String que contém os dados a serem gravados. Finalmente, imprimimos uma mensagem de sucesso no console se a operação de gravação for bem-sucedida ou uma mensagem de erro se uma exceção for detectada. O método writeString() é uma maneira conveniente de gravar uma String em um arquivo usando Java 11 ou posterior.

Classe PrintWriter

A classe PrintWriter libera automaticamente o buffer de saída após a gravação de cada linha, garantindo que os dados sejam gravados imediatamente no arquivo. Isso o torna uma escolha conveniente para gravar grandes quantidades de dados de texto em um arquivo. Aqui está um exemplo:
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            PrintWriter writer = new PrintWriter(new FileWriter("output.txt"));
            writer.println(textToWrite);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Neste exemplo, criamos um objeto PrintWriter denominado escritor com um objeto FileWrite que grava no arquivo "output.txt". Em seguida, usamos o método println() do objeto escritor para escrever textToWrite no arquivo. Finalmente, fechamos o objeto escritor .

Classe DataOutputStream

A classe DataOutputStream é usada para gravar tipos de dados Java primitivos em um arquivo como um fluxo de bytes. Aqui está um exemplo:
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";
        int numberToWrite = 42;

        try {
            DataOutputStream stream = new DataOutputStream(new FileOutputStream("output.txt"));
            stream.writeUTF(textToWrite);
            stream.writeInt(numberToWrite);
            stream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Neste exemplo, criamos um objeto DataOutputStream denominado stream , que grava no arquivo "output.txt". Em seguida, usamos o método writeUTF() do objeto stream para escrever a string textToWrite e o método writeInt() para escrever o inteiro numberToWrite no arquivo. Finalmente, fechamos o objeto stream .

Classe FileChannel

A classe FileChannel fornece uma maneira de gravar dados em um arquivo usando E/S mapeada em memória. Aqui está um exemplo:
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            File file = new File("output.txt");
            RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw");
            FileChannel channel = randomAccessFile.getChannel();
            ByteBuffer buffer = ByteBuffer.allocate(1024);
            buffer.put(textToWrite.getBytes());
            buffer.flip();
            channel.write(buffer);
            randomAccessFile.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Neste exemplo, primeiro criamos um objeto Arquivo denominado arquivo com o nome de arquivo "output.txt" como parâmetro. Em seguida, criamos um objeto RandomAccessFile chamado randomAccessFile com o objeto arquivo e o modo "rw" como parâmetros. Em seguida, criamos um objeto FileChannel chamado channel , que é inicializado usando o objeto randomAccessFile . Em seguida, criamos um objeto ByteBuffer chamado buffer com capacidade de 1024 bytes e colocamos a string textToWrite como parâmetro. Em seguida, invertemos o objeto buffer para prepará-lo para gravação e gravá-lo no objeto canal usando o método write() . Finalmente, fechamos o objeto randomAccessFile .

Conclusão

Concluindo, escrever em um arquivo usando Java é uma tarefa comum no desenvolvimento de software que pode ser feita usando várias classes e métodos integrados. Neste artigo, discutimos vários exemplos de como gravar em um arquivo, incluindo o uso das classes FileOutputStream , BufferedWriter , FileWriter , PrintWriter , DataOutputStream e FileChannel . É importante observar que, ao gravar em um arquivo, o tratamento adequado de erros e o fechamento do arquivo após a gravação são cruciais para garantir que o arquivo seja salvo corretamente e que os recursos sejam liberados adequadamente. Com os exemplos fornecidos neste artigo, os iniciantes agora podem ter uma compreensão básica de como escrever em um arquivo usando Java e podem começar a praticar e experimentar diferentes casos de uso.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION