Чтение онлайн

на главную - закладки

Жанры

Философия Java3

Эккель Брюс

Шрифт:

1

г

и

S

i

п

g

в

U

f

f

е

г

S

к

к

k

к

lim

pos |

Для

смешивания символов нам нужно записать символ с2 в позицию 0, a cl в позицию 1. Для этого можно обратиться за .«абсолютной» версией метода put, но мы приравняем позицию метке, что и делает метод resetQ:

| mar

1

г

1

г

и

S

i

п

g

в

U

f

f

е

г

S

к

к

)

к

з

cap |

>

г

1

г

и

S

i

п

g

в

U

f

f

е

г

S

i

к

k

к

Rim

На следующей итерации значение метки приравнивается позиции:

mar

cap |

>

г

>

г

и

S

i

п

g

в

U

f

f

е

г

s

k

к

k

к

lim

pos I

Процесс продолжается до тех пор, пока не будет просмотрен весь буфер. В конце цикла while

позиция находится в конце буфера. При выводе буфера на печать распечатываются только символы, находящиеся между позицией и предельным значением. Поэтому, если вы хотите распечатать буфер целиком, придется установить позицию на начало буфера, используя для этого метод rewind. Вот в каком состоянии находится буфер после вызова метода rewind (значение метки стало неопределенным):

г

и

S

i

п

g

в

U

f

f

е

г

S

i

к

k

к

posl

lim

При следующем вызове symmetricScramble процесс повторяется, и буфер CharBuffer возвращается к своему изначальному состоянию.

Отображаемые в память файлы

Механизм отображения файлов в память позволяет создавать и изменять файлы, размер которых слишком велик для прямого размещения в памяти. В таком случае вы считаете, что файл целиком находится в памяти, и работаете с ним как с очень большим массивом. Такой подход значительно упрощает код изменения файла. Небольшой пример:

//. io/LargeMappedFiles.java

// Создание очень большого файла, отображаемого в память

// {RunByHand}

import java.nio.*;

import java nio.channels.*;

import java.io.*;

import static net.mindview.util.Print.*.

public class LargeMappedFiles {

static int length = 0x8FFFFFF, // 128 MB public static void main(String[] args) throws Exception { MappedByteBuffer out =

new RandomAccessFileC'test.dat". "rw").getChannel .map(Fi1eChannel.MapMode.READ_WRITE. 0. length); for(int i = 0; i < length; i++)

out.put((byte)'x'); print("Запись завершена"); for(int i = length/2; i < length/2 +6; i++) printnb((char)out.get(i));

}

} ///:-

Чтобы одновременно выполнять чтение и запись, мы начинаем с создания объекта RandomAccessFile, получаем для этого файла канал, а затем вызываем метод тар, чтобы получить буфер MappedByteBuffer, который представляет собой разновидность буфера прямого доступа. Заметьте, что необходимо указать начальную точку и длину участка, который будет проецироваться, то есть у вас есть возможность отображать маленькие участки больших файлов.

Поделиться:
Популярные книги

Фельдмаршал Кутузов. Мифы и факты

Троицкий Н. А.
Россия забытая и неизвестная
Научно-образовательная:
военная история
4.00
рейтинг книги
Фельдмаршал Кутузов. Мифы и факты

Личный интерес

Вечная Ольга
Порочная власть
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Личный интерес

50 знаменитых сект

Карнацевич Владислав Леонидович
27. 100 знаменитых
Научно-образовательная:
религиоведение
5.00
рейтинг книги
50 знаменитых сект

"Фантастика 2023-130". Компиляция. Книги 1-22

Демченко Антон Витальевич
Фантастика 2023. Компиляция
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Фантастика 2023-130. Компиляция. Книги 1-22

История западной философии

Рассел Бертран Артур Уильям
Научно-образовательная:
история
философия
религиоведение
7.43
рейтинг книги
История западной философии

Том 7. Последние дни

Булгаков Михаил Афанасьевич
7. Собрание сочинений в десяти томах
Проза:
советская классическая проза
5.00
рейтинг книги
Том 7. Последние дни

Ледяная Королева (Трилогия)

Ахмедова Майя Саидовна
99. В одном томе
Фантастика:
фэнтези
8.31
рейтинг книги
Ледяная Королева (Трилогия)

Лучшее за год III. Российское фэнтези, фантастика, мистика

Первушина Елена Владимировна
Фантастика:
фэнтези
социально-философская фантастика
научная фантастика
боевая фантастика
ужасы и мистика
юмористическая фантастика
космическая фантастика
5.00
рейтинг книги
Лучшее за год III. Российское фэнтези, фантастика, мистика

Обманы Локки Ламоры

Линч Скотт
1. Благородные Подонки
Фантастика:
фэнтези
8.36
рейтинг книги
Обманы Локки Ламоры

Интернет-журнал "Домашняя лаборатория", 2008 №2

Журнал «Домашняя лаборатория»
Дом и Семья:
хобби и ремесла
сделай сам
5.00
рейтинг книги
Интернет-журнал Домашняя лаборатория, 2008 №2

НКВД-МВД СССР в борьбе с бандитизмом и вооруженным националистическим подпольем на Западной Украине, в Западной Белоруссии и Прибалтике (19

Кокурин А. И.
Научно-образовательная:
история
5.00
рейтинг книги
НКВД-МВД СССР в борьбе с бандитизмом и вооруженным националистическим подпольем на Западной Украине, в Западной Белоруссии и Прибалтике (19

История россии 1917–2009

Вдовин Александр Иванович
Научно-образовательная:
история
6.25
рейтинг книги
История россии 1917–2009

Библия. Синодальный перевод

Священное Писание
Религия и эзотерика:
религия
5.00
рейтинг книги
Библия. Синодальный перевод

Жена со скидкой, или Случайный брак

Ардова Алиса
Любовные романы:
любовно-фантастические романы
8.15
рейтинг книги
Жена со скидкой, или Случайный брак