Java FileWriter

the Java FileWriter class, java.io.FileWriter, makes it possible to write characters to a file. A este respeito, o texto Java FileWriter funciona muito como o FileOutputStream exceto que um FileOutputStream é baseado em byte, enquanto que um FileWriter é baseado em caracteres. O FileWriter destina-se a escrever texto, em outras palavras. Um caractere pode corresponder a um ou mais bytes, dependendo do esquema de codificação de caracteres em uso. A classe Java FileWriter é uma subclasse da classe Java Writer, a propósito.

exemplo de redacção

aqui está um simples Java FileWriter exemplo:

Writer fileWriter = new FileWriter("data\filewriter.txt");fileWriter.write("data 1");fileWriter.write("data 2");fileWriter.write("data 3");fileWriter.close();

Nota: O tratamento adequado das excepções foi ignorado aqui por uma questão de clareza. Para saber mais sobre o manuseio correto de exceções, consulte Java IO.

o FileWriter tem outros construtores também, permitindo que você especifique o arquivo para escrever de maneiras diferentes. Procure no JavaDoc oficial informações mais detalhadas.

sobrepor vs. adicionar o ficheiro

quando criar um Java FileWriter poderá decidir se deseja sobrepor QUALQUER ficheiro existente com o mesmo nome, ou se deseja adicionar a qualquer ficheiro existente. Você decide isso escolhendo o que FileWriter construtor você usa.

O FileWriter construtor tomar apenas um parâmetro, o nome do arquivo, irá substituir qualquer arquivo existente:

Writer fileWriter = new FileWriter("c:\data\output.txt");

FileWriter tem um construtor que recebe 2 parâmetros: O nome do arquivo e um valor booleano. O booleano indica se deve adicionar ou sobrepor um ficheiro existente. Aqui estão duas Java FileWriter exemplos mostrando que:

Writer fileWriter = new FileWriter("c:\data\output.txt", true); //appends to fileWriter fileWriter = new FileWriter("c:\data\output.txt", false); //overwrites file

FileWriter Codificação de Caracteres

O FileWriter assume que você deseja codificar os bytes para o arquivo usando o padrão de codificação de caracteres para o computador o aplicativo é executado. Isto pode nem sempre ser o que você quer, e você não pode mudá-lo!

se quiser indicar um esquema de codificação de caracteres diferente, não use um FileWriter. Utilize um OutputStreamWriter num FileOutputStream em vez disso. O OutputStreamWriter permite-lhe indicar o esquema de codificação de caracteres a usar ao escrever os ‘bytes’ no ficheiro subjacente.

write (int)

the Java FileWriter write(int) method writes the lower 16 bit of the int to the destination the FileWriter is connected to, as a single character. Aqui está um exemplo de escrever um único caractere em um Java FileWriter:

FileWriter fileWriter = new FileWriter("data/output.txt");fileWriter.write('A');

write (char)

the Java FileWriter also has a write(char) method which can write an array of characters to the destination the FileWriter is connected to. O método write(char) devolve o número de caracteres efectivamente escritos para o FileWriter. Aqui está um exemplo de escrever um array de caracteres para um Java FileWriter:

FileWriter fileWriter = new FileWriter("data/output.txt");char chars = new char{'A','B','C','D','E'};fileWriter.write(chars);

Write Performance

It is faster to write an array of characters to a Java FileWriter than writing one character at a time. O speedup pode ser bastante significativo – até 10 x maior ou mais. Assim, recomenda-se a utilização dos métodos write(char) sempre que possível.

a velocidade exata que você obtém depende do so subjacente e hardware do computador em que você executa o código Java. O aumento de velocidade depende de questões como a velocidade da memória, a velocidade do disco rígido e tamanhos de buffer, etc.

buffer transparente via BufferedWriter

você pode obter buffer transparente de bytes escritos em um Java FileWriter embrulhando – o em um buffer Java BufferedWriter . Todos os bytes escritos no BufferedWriter serão primeiro tamponados dentro de um conjunto interno de bytes no BufferedWriter. Quando o buffer estiver cheio, o buffer é lavado para o subjacente FileWriter tudo de uma vez. Aqui está um exemplo de moldagem de um Java FileWriter em um BufferedWriter:

int bufferSize = 8 * 1024;Writer writer = new BufferedWriter( new FileWriter("c:\data\output-file.txt"), bufferSize );

Você pode ler mais sobre o BufferedWriter no meu BufferedWriter tutorial.

flush ()

the Java FileWriter‘s flush() method flushes all data written to the FileWriter to the underlying file. Os dados podem ser tamponados na memória do sistema operacional em algum lugar, mesmo que o seu código Java o tenha escrito para o FileWriter. Ao chamar flush() você pode garantir que quaisquer dados tamponados serão despejados (escritos) no disco. Aqui está um exemplo de flushing dados escritos em um Java FileWriter chamando seu método flush() :

fileWriter.flush();

fechando um escrito de arquivo

quando você terminar de escrever caracteres para um Java FileWriter você deve lembrar-se de fechá-lo. Fechar um FileWriter é feito chamando seu método close(). Aqui está o aspecto de fechar um Java FileWriter :

fileWriter.close();

Você também pode usar a construção de tentativa-com-recursos introduzida no Java 7. Aqui está como usar e fechar uma aparência FileWriter com a construção de tentativa-com-recursos:

try(FileWriter fileWriter = new FileWriter("data\filewriter.txt") ){ fileWriter.write("data 1"); fileWriter.write("data 2"); fileWriter.write("data 3");}

Deixe uma resposta

O seu endereço de email não será publicado.