例如,在从磁盘向内存读入一个扇区的数据时 数据被存放到输入缓冲区,如果下次需要读入 同一个扇区的数据,就可以直接从缓冲区中读 取数据,不需要重新读盘。 缓冲区大小应与操作系统一次读写的块的大小 相适应,这样可以通过操作系统一次读写把信 息全部存入缓冲区中,或把缓冲区中的信息全 部写出到磁盘。 如果缓冲区大小与磁盘上的块大小不适配,就 会造成存储空间的浪费。 缓冲区的构造可以看作一个先进先出的队列。 16
• 例如,在从磁盘向内存读入一个扇区的数据时, 数据被存放到输入缓冲区,如果下次需要读入 同一个扇区的数据,就可以直接从缓冲区中读 取数据,不需要重新读盘。 • 缓冲区大小应与操作系统一次读写的块的大小 相适应,这样可以通过操作系统一次读写把信 息全部存入缓冲区中,或把缓冲区中的信息全 部写出到磁盘。 • 如果缓冲区大小与磁盘上的块大小不适配,就 会造成存储空间的浪费。 • 缓冲区的构造可以看作一个先进先出的队列。 16
缓冲区的定义及其操作 #include <iostream.h> #include <assert.h> const int DefaultSize =2048; template <class T> struct buffer T *data; 川缓中区数组 int current,maxSize;/当前指针,缓冲区容量 buffer (int sz DefaultSize):maxSize(sz),current(O) data new T[sz];assert (data !=NULL);} buffer(){delete []data; 17
缓冲区的定义及其操作 #include <iostream.h> #include <assert.h> const int DefaultSize = 2048; template <class T> struct buffer { T *data; //缓冲区数组 int current, maxSize; //当前指针, 缓冲区容量 buffer (int sz = DefaultSize) : maxSize(sz), current(0) { data = new T[sz]; assert (data != NULL); } ~buffer() { delete []data; } 17
void OutputInfo(ostream&out,Tx);/∥缓冲区输出 void InputInfo (istream&in,T&x); 川缓冲区输入 }; template <class T> void buffer<T>::OutputInfo (ostream&out,Tx){ if (current =maxSize){ for (int i=0;i maxSize;i++)out <data[i]; current 0; data[current]x;current++; }; 18
void OutputInfo (ostream& out, T x); //缓冲区输出 void InputInfo (istream& in, T& x); //缓冲区输入 }; template <class T> void buffer<T>::OutputInfo (ostream& out, T x) { if (current == maxSize) { for (int i = 0; i < maxSize; i++) out << data[i]; current = 0; } data[current] = x; current++; }; 18
template <class T> void buffer<T>:InputInfo (istream&in,T&x) if (current maxSize){ x data[current]; current++; } else for (int i=0;i<maxSize;i++)in >data[i current 0; }; (
template <class T> void buffer<T>::InputInfo (istream& in, T& x) { if (current < maxSize) { x = data[current]; current++; } else { for (int i = 0; i < maxSize; i++) in >> data[i]; current = 0; } }; 19
文件组织 文件的基本概念 .什么是文件 ◆文件是存储在外存上的数据结构,一般是在逻 辑上具有完整意义的一组相关信息项的有序序 列。 ◆文件分操作系统文件和数据库文件 √操作系统中的文件是流式文件:是没有结构 的字符流 √数据库文件是具有结构的数据集合 ◆数据结构中讨论的是数据库文件。 操作系统对文件是按物理记录读写的,在数据库 中文件按页块存储和读写。 20
文件组织 • 什么是文件 ◆ 文件是存储在外存上的数据结构,一般是在逻 辑上具有完整意义的一组相关信息项的有序序 列。 ◆ 文件分操作系统文件和数据库文件 ✓ 操作系统中的文件是流式文件:是没有结构 的字符流 ✓ 数据库文件是具有结构的数据集合 ◆ 数据结构中讨论的是数据库文件。 • 操作系统对文件是按物理记录读写的,在数据库 中文件按页块存储和读写。 20 文件的基本概念