Treader类的问题先用TWriter.writestring写数据到文件
procedure TForm1.Button1Click(Sender: TObject);
Var
FileStream:TFilestream;
Mywriter:TWriter;
i: integer ;
Begin
FileStream:=TFilestream.create('c:\a.txt',fmcreate);//创建文件流对象
Mywriter:=TWriter.create(FileStream,1024);//把Mywriter和FileStream联系起来
Mywriter.writelistbegin; //写入列表开始标志
For i:=0 to Memo1.lines.count-1 do
Mywriter.writestring(memo1.lines[i]);//保存Memo组件中文本信息到文件中
Mywriter.writelistend;//写入列表结束标志
FileStream.seek(0,sofrombeginning);//文件流对象指针移到流起始位置
Mywriter.free;//释放Mywriter对象
FileStream.free;//释放FileStream对象
Memo1.lines.Clear ;
End;然后用TReader.readstring来读文件 
procedure TForm1.Button2Click(Sender: TObject);
Var
FileStream:TFilestream;
Myreader:TReader;
Begin
FileStream:=TFilestream.create('c:\a.txt',fmopenread);
Myreader:=TReader.create(FileStream,1024); //把Myreader和FileStream联系起来
Myreader.readlistbegin;//把写入的列表开始标志读出来
Memo1.lines.clear; //清除Memo1组件的文本内容
While not myreader.endoflist do//注意TReader的一个方法:endoflist
Begin
Memo1.lines.add(myreader.readstring); //把读出的字符串加到Memo1组件中
End;
Myreader.readlistend;//把写入的列表结束标志读出来
Myreader.free;//释放Myreader对象
FileStream.free;//释放FileStream对象
End;然而当程序执行到Myreader.readlistbegin;发生运行时错误
看图片:http://www.bwkj.net/ztreader1.jpg