Скачать презентацию Примеры организации произвольного доступа к двоичному файлу на Скачать презентацию Примеры организации произвольного доступа к двоичному файлу на

материал по Двоичному_потоку.ppt

  • Количество слайдов: 10

Примеры организации произвольного доступа к двоичному файлу (на примере файла t. dat): static void Примеры организации произвольного доступа к двоичному файлу (на примере файла t. dat): static void Main() { //изменение данных в двоичном потоке File. Stream f = new FS("t. dat", File. Mode. Open); Binary. Writer f. Out = new Binary. Writer(f); long n = f. Length; //опред. кол-во байт в байт. потоке n=204 int a; for (int i=0; i

//чтение данных из двоичного потока f = new File. Stream( //чтение данных из двоичного потока f = new File. Stream("t. dat", File. Mode. Open); Binary. Reader f. In=new Binary. Reader(f); n = f. Length/4; //опр. кол-во чисел в дв. потоке n=51 for (int i=0; i

В следующем примере производится формирование двоичного файла – в файл записывается последовательность вещественных чисел. В следующем примере производится формирование двоичного файла – в файл записывается последовательность вещественных чисел. Затем для демонстрации произвольного доступа третье число заменяется числом 8888.

static void Main( ) { try { Binary. Writer fout = new Binary. Writer static void Main( ) { try { Binary. Writer fout = new Binary. Writer (new File. Stream(@"t. dat", File. Mode. Create)); double d = 0; while (d < 4) { fout. Write(d); d+=0. 33; }

 //перемещ. внутр. ук-ль файла на второй эл-т файла //учит-ся длина кажд. знач-я типа //перемещ. внутр. ук-ль файла на второй эл-т файла //учит-ся длина кажд. знач-я типа doublе – 8 байт fout. Seek(16, Seek. Origin. Begin); // записываем число 8888 fout. Write(8888 d); fout. Close(); } //чтение данных из двоичного потока File. Stream f = new FS("t. dat", File. Mode. Open); Binary. Reader f. In = new Binary. Reader(f); long n = f. Length/8; //опр-ем кол-во чисел в дв. потоке; Console. Write. Line(n + " чисел всего");

double a; for (int i = 0; i < n; i++) { a = double a; for (int i = 0; i < n; i++) { a = f. In. Read. Double(); Console. Write(a + " "); } f. In. Close(); f. Close(); Console. Read. Line(); } catch (Exception e) { Console. Write. Line("Error: " + e. Message); return; } }

Пример static void Main() { //Записываем в файл t. dat целые числа от 0 Пример static void Main() { //Записываем в файл t. dat целые числа от 0 до 100 FStream f=new FS("t. dat", File. Mode. Open); Binary. Writer f. Out = new Binary. Writer(f); for (int i=0; i<100; ++i) f. Out. Write(i); f. Out. Close();

//Объекты f и f. In связаны с одним и тем же файлом f=new File. //Объекты f и f. In связаны с одним и тем же файлом f=new File. Stream("t. dat", File. Mode. Open); Binary. Reader f. In = new Binary. Reader(f); long n = f. Length; //определяем кол-во байт потоке //Читаем данные из файла t. dat, перемещая внутренний //указатель на 8 байт, т. е. на два целых числа for (int i=0; i

еще один пример на считывание двоичного файла. static void Main() { try { //считаем, еще один пример на считывание двоичного файла. static void Main() { try { //считаем, что файл существует File. Stream f=new FS(@"t. dat", File. Mode. Open); Binary. Reader f. In = new Binary. Reader( f ); long n = f. Length / 8; // количество чисел в файле double[ ] x = new double[n]; long i = 0; try { while( true ) x[i++] = f. In. Read. Double(); // чтение }

catch ( End. Of. Stream. Exception e ) { Console. Write. Line( e. Message catch ( End. Of. Stream. Exception e ) { Console. Write. Line( e. Message ); } foreach( double d in x ) Console. Write( " " + d ); // вывод f. In. Close(); f. Close(); } catch ( File. Not. Found. Exception e ) { Console. Write. Line( e. Message ); C. WL( "Проверьте прав-сть имени файла!" ); } catch ( Exception e ) { Console. Write. Line( "Error: " + e. Message ); } }