1、所谓“流”是指一块内存或数据;不必关心流的数据具体是什么,只要知道流的大小和位置就行了。
对于流的操作最重要的是读和写,对于这样的控件最重要的方法是readfromstream和savetostream;
2、内存流 压缩流 解压流 字符流 encodestream decodestream
内存流主要完成读入硬盘数据和写入硬盘数据
mstream:TMemoryStream;
mstream:= TMemoryStream.create;
mstream.loadfromfile('c://temp//test.txt/');
或 Tstrings 的 savetostream(mstream);将数据写入流
压缩流和解压流 对数据进行压缩和解压,他们需要借用内存流来操作,自己没有可以存储数据的地方。
var
m1,m2:Tmemorystream;
comstream : TCompressionStream;
sstream : TStringStream;
begin
m1 := Tmemorystream.create;m2 := Tmemorystream.create;
m1.loadfromfile('c://temp//test.txt/');
m2.setsize(num);
comstream := TCompressionStream.create(cldefault,m2);//第一个参数是压缩比例,第二个参数是接收的内存流
m1.savetostream(comstream);传入要压缩的流 或者用comstream.write(buffer,count)count是字节数,buffer是为被压缩的缓冲区;这样直接将数据压缩到接收内存流中,不再通过接收内存流了。
如果失败 可以用 FreeAndNil(comstream)来释放掉。
m2.savetofile('c://temp//test.zipx/') //可将压缩文件保存
comstream.position := 0;
sstream := TStringstream.create('');
Encodestream(comstream,sstream);//进行加密处理;
result := sstream.datastring;
别忘记释放流文件
sstream.free;
comstream.free;
m1.free;
m2.free;