Приветствую Вас ГостьПятница, 29.03.2024, 16:01

Программирование на Java, Android, Delphi


Блог

Главная » 2014 » Февраль » 3 » java.io класс RandomAccessFile
12:22
java.io класс RandomAccessFile
Класс RandomAccessFile позволяет получить доступ к файлу с произвольным доступом. Сам он не является потоком, так как не наследуется от какого-либо потокового класса, но реализует  интерфейсы DataInput и DataOutput. Методы этих интерфейсов позволяют читать и писать разнотипные данные в файл. Также мы можем управлять позицией каретки - перемещать её или пропускать определенное число байт от текущей позиции. Пример:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package javainputoutput;

/**
*
* @author martyshov
*/
import java.io.*;
import java.nio.*;
import java.util.*;

public class JavaInputOutput {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {

RandomAccessFile rf = null;
try {
rf = new RandomAccessFile("C:/test.txt", "rw");
String str = "0123456789";
rf.write(str.getBytes());

} catch (IOException e) {
System.err.println(e.getLocalizedMessage());
} finally {
if (rf != null) {
rf.close();
}
}

RandomAccessFile rf2 = null;
try {
rf2 = new RandomAccessFile("C:/test.txt", "rw");
System.out.println("Пропускаем 5 байтов в файле");
rf2.skipBytes(5);
System.out.println((char) rf2.readByte());
System.out.println((char) rf2.readByte());
System.out.println((char) rf2.readByte());

System.out.println("Ставим на 5 позицию в файле");
rf2.seek(5);
System.out.println((char) rf2.readByte());
System.out.println((char) rf2.readByte());
System.out.println((char) rf2.readByte());
System.out.println((char) rf2.readByte());

//устанавливаем новую длину файла в байтах и переводим каретку на начало файла
rf2.setLength(7);
rf2.seek(0);
for (int i = 0; i < rf2.length(); i++) {
System.out.print((char) rf2.readByte());
}
System.out.println();

//устанавливаем новую длину файла в байтах и переводим каретку на начало файла
rf2.setLength(3);
rf2.seek(0);
for (int i = 0; i < rf2.length(); i++) {
System.out.print((char) rf2.readByte());
}
System.out.println();

} catch (IOException e) {
System.err.println(e.getLocalizedMessage());
} finally {
if (rf2 != null) {
rf2.close();
}
}

}
}

Категория: Java (Библиотека, пакеты Java) | Просмотров: 1009 | Добавил: alex | Рейтинг: 5.0/1
Категории раздела
Java (Общие вопросы) [17]
Java (Библиотека, пакеты Java) [17]
Java (Разработка программного обеспечения на Java) [5]
Java (Среда разработки NetBeans) [5]
JSF + PrimeFaces [21]
Java EE [11]
Разное [3]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поиск
Календарь
«  Февраль 2014  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
2425262728
Архив записей