RandomAccessFile в Java

Java RandomAccessFile обеспечивает несущественный доступ к файлам. Он ведет себя как большой массив байтов, хранящихся в файловой системе. Это означает, что вам не нужно начинать с первой строки, и вы можете прыгать в любом месте файла. Это похоже на структуру данных массива. Так же, как вы можете получить доступ к любому элементу массива по индексу, вы можете прочитать любой контент из файла с помощью указателя на файл. Реальное преимущество заключается в том, что как только файл открывается, его можно читать или записывать случайным образом, просто используя номер записи или вы можете добавить его до конца, так как вы будете знать, сколько записей в файле.

Перемещение вокруг RandomAccessFile

Класс RandomAccessFile позволяет перейти в определенное место в файле с помощью метода seek(). Как только указатель файла был помещен, данные могут быть прочитаны и записаны в файл с использованием интерфейсов DataInput и DataOutput. Эти интерфейсы позволяют нам считывать и записывать данные независимым от платформы способом. Текущую позицию указателя файла можно получить, вызвав метод getFilePointer().

 
RandomAccessFile(File file, String mode)

Вышеупомянутый конструктор создает поток файлов произвольного доступа для чтения и, возможно, для записи файла, указанного аргументом File.

Режим доступа

В RandomAccessFile, в то время как экземпляр режима по умолчанию доступен только для чтения. Но мы можем предоставить другой режим. Эти режимы

 
"r"   : File is open for read only.
"rw"  : File is open for read and write both.
"rws" : Same as rw mode. It also supports to update file content synchronously to device storage.
"rwd" : Same as rw mode that also supports reduced number of IO operation.

Пример

 
import Java.util.*;
import Java.io.*;
public class TestClass{
  public static void main(String[] args) {
    try {
        RandomAccessFile raFile =new RandomAccessFile("D://test.txt", "rw");
        raFile.write("Java Tutorial".getBytes()); // добавление содержимого
        raFile.seek(raFile.getFilePointer()-8); // установить указатель назад -8 символов
        raFile.write("File Class Tutorial ".getBytes()); // пишем текст, где указатель
        raFile.seek(0); // установить указатель на начало файла
        int i;
      while((i= raFile.read())!=-1){
        System.out.print((char)i);
      }
    }
    catch (IOException e){
    e.printStackTrace();
    }
  }
}

Выход

 
Java File Class Tutorial

Источник: http://net-informations.com/Java/files/raf.htm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector