Java RandomAccessFile

Java RandomAccessFile
Vamos olhar para a aula RandomAccessFile neste artigo. Ele usa um cursor para mover o local do ponteiro através do arquivo. A capacidade de acessar o arquivo dá o nome aleatoriamente, RandomAccessFile.

Exemplo 1: Anexando texto no final de um arquivo

Neste exemplo, adicionaremos o texto no final do seguinte arquivo usando os métodos da classe RandomAccessFile.

Primeiro, importamos o java.io. Classe RandomAccessFile. Em seguida, fazemos um novo objeto do RandomAccessFile Chamando o construtor do RandomAccessFile (“Arquivo.txt "," rw "). Com o nome do arquivo e o modo, este objeto de função () cria um fluxo aleatório. Nesse caso, o modo é "RW", que inicia o arquivo no modo de leitura-gravação.

O método "Seek ()" é usado na próxima linha com o arquivo de parâmetro. O método comprimento () define o cursor/ponteiro para a posição especificada. No caso anterior, é o fim do texto do arquivo. Então, o método writebytes () é chamado com a string ("ipsum") como seus parâmetros. Este método escreve a string a partir do ponteiro de arquivo atual ou do cursor. f.Método Close () fecha o fluxo de arquivos de acesso aleatório. Quaisquer recursos do sistema usados ​​pelo fluxo são liberados.

Depois de compilar o código fornecido, podemos ver os "dados adicionados com sucesso" no terminal, o que indica que o código foi executado com sucesso. Então, se abrirmos o “arquivo.arquivo txt ”no qual anexamos os dados em nosso código, podemos ver que nossos dados são anexados com sucesso no final do arquivo.

Exemplo 2: Leitura de texto de um arquivo de texto

Neste exemplo, leremos o conteúdo de um arquivo de texto usando os métodos da classe RandomAccessFile. O arquivo a ser lido neste exemplo é como mostrado no seguinte:

No código dado, primeiro importamos o “java.io.RandomAccessFile ”para usar seus métodos e funções. Aqui, criamos um fluxo aleatório defile com o modo "r", que representa que ele está no modo somente leitura. O deslocamento atual em bytes do início do arquivo é fornecido pelo “F.getFilePointer () ”função. Em seguida, fornecemos esse valor à função Seek () que define o ponteiro do arquivo para o início do arquivo onde a próxima leitura ocorre. Depois disso, geramos uma matriz de 5 bytes. Quando o método de leitura é chamado com esta matriz como seu parâmetro (f.Leia (bytes)), os 5 bytes são lidos no arquivo e são adicionados à matriz de 5 bytes.

O f.Método Close () fecha o fluxo RandomAccessFile. Quaisquer recursos do sistema usados ​​pelo fluxo são liberados.

Finalmente, os bytes de retorno retornam a matriz em que o texto do arquivo é lido e adicionado. Isso pode ser visto a seguir, que apenas 5 caracteres do arquivo são exibidos no terminal.

Exemplo 3: Escrever texto em um arquivo de texto

Neste exemplo, usaremos os métodos Seek (), Write () e Close () para escrever os dados em um arquivo de texto. A função get bytes também é usada neste exemplo para escrever.

No código dado, primeiro importamos o java.io. RandomAccessFile para usar seus métodos e funções. Aqui, criamos um fluxo aleatório do Free. O f.Procure (5) o método move a posição do ponteiro do arquivo para os 5º índice. Então, o f.Write ("Dados".getBytes ()) escreve os novos bytes de "dados" e substitui os bytes existentes, se houver algum, neste local.

O f.Método Close () fecha o fluxo RandomAccessFile. Quaisquer recursos do sistema usados ​​pelo fluxo são liberados.

Após a conclusão da compilação, a string "Dados adicionados com sucesso" é exibida no terminal para indicar que o código foi executado com sucesso. O arquivo de texto em que escrevemos o texto usando o RandomAccessFile é mostrado no seguinte:

Exemplo 4: Anexar, adicionar texto em um arquivo e ler o texto do arquivo

Neste exemplo, implementaremos todas as diferentes abordagens que podemos adotar com o objeto de classe RandomAccessFile e suas múltiplas funções para escrever, anexar e ler os dados de um arquivo de texto.

Criamos três funções diferentes em uma única classe para escrever, anexar os dados e ler o conteúdo do arquivo de texto. Na função Anexe Data and Write Data, usamos a função Write () usando o objeto da classe RandomAccessFile. Na função de dados do Apend, adicionamos os dados após o último byte do arquivo usando o arquivo.Length () Funciona como um parâmetro na função Seek (). Na função de dados de gravação, inserimos os dados no início do arquivo, passando um valor inteiro na função Seek (). Ao fazer isso, a função Apênd Data é capaz de adicionar os dados ao final do arquivo. Na última função, usamos a função read () para ler os bytes do arquivo. Nesta função, passamos dois parâmetros que atuam como o intervalo do qual queremos ler os dados de.

Como podemos ver no terminal, a saída mostra apenas os primeiros 5 bytes do arquivo, pois o intervalo é definido na função read (). Agora, abrimos o arquivo de texto e verificamos que os dados são inseridos e anexados na posição correta.

Como podemos ver no trecho anterior, os dados no arquivo de texto são inseridos corretamente depois que executamos nosso programa Java.

Conclusão

Discutimos o uso da classe RandomAccessFile em Java neste artigo. O objeto desta classe é usado para chamar as múltiplas funções que são lucrativas na extração e inserção dos dados em um arquivo de texto. Implementamos vários exemplos dos diferentes métodos desta classe no Ubuntu 20.04 Ambiente. Usamos os métodos Write (), Seek () e Read () nesses exemplos para inserir os dados em um arquivo de texto e ler o conteúdo do arquivo de texto depois disso.