.net 数据流读写方法 FileStream StreamWrite BinaryWirte 的使用 及速度的对比
在进行比较大的数据库文件的读取与写入是 往往读取或写入的时间特别长 影响到客户的使用心情 这样的话就必须提高读写数据的效率 。要是比较小的文件那就没有必要了
本文主要是测试三种方法在读写数据时的效率 及个方法的优缺点 。
在新建窗体上 添加一个button 两个文本 textBox1 textBox2 分别记录开始读入数据 以及写入完成数据的时间
//————————————————————StreamWrite ——————————————————————————
//获取当前的时间
currentTime = System.DateTime.Now;
//获取当前时间的秒并用文本框记录当前的时间 也可以设置按秒来计算
int second = currentTime.Second;
textBox1.Text = second.ToString();
//实例化读取fs(源文件) 写出fs2(新文件)的文件流
FileStream fs2 = new FileStream(@"D:\3.txt", FileMode.Create);
FileStream fs = new FileStream(@"D:\1.txt", FileMode.Open);
//实例化一个数组用来存储读取fs 的数据流
byte[] data = new byte[1024];
fs.Read(data, 0, data.Length);
//实例化一个StreamWriter-->与fs相关联
StreamWriter sw = new StreamWriter(fs2);
//开始写入
string str = Encoding.ASCII.GetString(data);
while (fs.Read(data, 0, data.Length) > 0)
{
sw.Write(str, 0, data.Length);
sw.Flush();s
}s
// sw.Write(str , 0, data.Length);
//清空缓冲区
//sw.Flush();
//关闭流
sw.Close();
fs.Close();
currentTime = System.DateTime.sNow;
int second2 = currentTime.Second;
textBox2.Text = second2.ToString();
//————————————————FileStream————————————————————————————
currentTime = System.DateTime.Now;
int second =currentTime.Second;
textBox1.Text = second.ToString();
//实例化读取fs(源文件) 写出fs2(新文件)的文件流
FileStream fs = new FileStream(@"D:\1.txt", FileMode.Open);
FileStream fs2 = new FileStream(@"D:\2.txt", FileMode.Create);
//创建数组用来存储读进来的数据流
byte[] data = new byte[1024];
//创建两个缓冲流,用来存储读入写出的数据流
BufferedStream bs = new BufferedStream(fs);
BufferedStream bs2 = new BufferedStream(fs2);
//fs读,fs2写,同事进行 当fs没有字节可读fs2停止写入
while (fs.Read(data, 0, data.Length) > 0)
{
fs2.Write(data, 0, data.Length);
fs2.Flush();
}
////关闭流..
fs.Close();
fs2.Close();
currentTime = System.DateTime.Now;
textBox2.Text = currentTime.Second.ToString();
//——————————————————————————BinaryWirte——————————————————————

浙公网安备 33010602011771号