Você está aqui: Java ::: Dicas & Truques ::: Arquivos e Diretórios |
Escrevendo e lendo tipos primitivos em um arquivo usando a classe RandomAccessFileQuantidade de visualizações: 8905 vezes |
|
A classe RandomAccessFile fornece muitos métodos para escrever e ler tipos primitivos em um arquivo. Esta dica detalha os principais e fornece alguns exemplos. Vamos começar com os métodos de escrita: writeBoolean(boolean v), writeChar(int v), writeDouble(double v), writeFloat(float v), writeInt(int v), writeLong(long v), writeShort(int v) e writeUTF(String str). Todos estes métodos são void e a maioria escreve seus valores como grupos de bytes. Algumas diferenças entre eles estão documentadas na API Java. Agora os métodos de leitura: 1) readBoolean() - retorna um boolean; 2) readChar() - retorna um caractere Unicode; 3) readDouble() - retorna um double; 4) readFloat() - retorna um float; 5) readInt() - retorna um inteiro de 32 bits com sinal; 6) readLong() - retorna um inteiro de 64 bits com sinal; 7) readShort() - retorna um inteiro de 16 bits com sinal; 8) readUnsignedShort() - retorna um inteiro de 16 bits sem sinal. Veja um trecho de código no qual usamos os métodos writeInt() e readInt() para escrever e ler inteiros em um arquivo: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
import java.io.*;
public class Estudos{
public static void main(String[] args){
// uma instância de RandomAccessFile para leitura e escrita
// se o arquivo não existir ele será criado
try{
RandomAccessFile arquivo =
new RandomAccessFile("C:\\java\\valores.dat", "rw");
// vamos escrever inteiros no arquivo
arquivo.writeInt(38);
arquivo.writeInt(7273);
arquivo.writeInt(1200);
arquivo.close();
}
catch(FileNotFoundException fnfe){
System.out.println(fnfe.getMessage());
}
catch(IOException ioe){
System.out.println(ioe.getMessage());
}
// vamos fazer a leitura dos escritos gravados anteriormente
try{
RandomAccessFile arquivo =
new RandomAccessFile("C:\\java\\valores.dat", "r");
int tam = (int)(arquivo.length() / 4); // grupo de 4 bytes
for(int i = 0; i < tam; i++){
System.out.println(arquivo.readInt());
}
arquivo.close();
}
catch(FileNotFoundException fnfe){
System.out.println(fnfe.getMessage());
}
catch(IOException ioe){
System.out.println(ioe.getMessage());
}
System.exit(0);
}
}
É possível misturar os métodos de escrita e leitura dos tipos primitivos, mas, temos que ficar atentos para não tentarmos ler um int a partir de um arquivo que só contém booleans, por exemplo. Veja: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
import java.io.*;
public class Estudos{
public static void main(String[] args){
// uma instância de RandomAccessFile para leitura e escrita
// se o arquivo não existir ele será criado
try{
RandomAccessFile arquivo =
new RandomAccessFile("C:\\java\\valores.dat", "rw");
// vamos escrever um float
arquivo.writeFloat(15.79f);
// vamos escrever um boolean
arquivo.writeBoolean(true);
// vamos escrever um short
arquivo.writeShort(132);
arquivo.close();
}
catch(FileNotFoundException fnfe){
System.out.println(fnfe.getMessage());
}
catch(IOException ioe){
System.out.println(ioe.getMessage());
}
// vamos fazer a leitura dos primitivos escritos
// anteriormente
try{
RandomAccessFile arquivo =
new RandomAccessFile("C:\\java\\valores.dat", "r");
// vamos ler o float
System.out.println(arquivo.readFloat());
// vamos ler o boolean
System.out.println(arquivo.readBoolean());
// vamos ler o short
System.out.println(arquivo.readShort());
arquivo.close();
}
catch(FileNotFoundException fnfe){
System.out.println(fnfe.getMessage());
}
catch(IOException ioe){
System.out.println(ioe.getMessage());
}
System.exit(0);
}
}
Não se esqueça que o ponteiro de arquivo é adiantado a cada leitura efetuada em um arquivo encapsulado por um objeto da classe RandomAccessFile. |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
|
JavaScript - JavaScript para iniciantes - Como obter o valor do maior número possível em JavaScript usando Number.MAX_VALUE |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






