8 G; V* r. h8 J1 i3 O* b nRealRead = fs.Read( bBuffer, 0, 1024 ); i0 V6 u/ `! N: n9 e. }! n0 v- ]
2 W0 {' T% e; o& m' w // Output data 0 @' e3 _: }; f; x" U7 Q # t, a0 T; ?+ \0 B# T Debug.WriteLine( Encoding.Default.GetString( bBuffer, 0, nRealRead ) ); * h6 z* e5 |5 G4 w& Z , [. g* w5 e9 E4 b5 B) X b此时在输出的时候用的不是“1024”,而是“nRealRead”做为字节有效标示。- Q# J S9 B3 i! ^$ F6 h
* B' e% S3 T8 S" Y" r( q对于问题四,Stream缓存的问题,这主要表现在写的时候。为了避免频繁操作IO而降低效率,大多数Stream采用异步写的方式,也就是Stream对象要配备有一定的缓存,来暂时保存写的数据。但缓存是有限的,当缓存已满后会造成后续写的数据不能写入,从而导致数据丢失。那么此时需要显示的调用Stream.Flush方法,来把缓存的数据写入到文件中并清空缓存。其实这并不是唯一方法,在一些Stream的子类中还提供了设置BufferSize的方法,或者提供了设置AutoFlush属性来实现自动写入等等,因此这里大家可以根据不同需要而选择不同方法来完成。; v- {$ H @4 l