try
{
fileStream = 租茄new FileStream(_waveFileName, FileMode.Create)
}
catch
{
this.textBox.Text = "No"
}
if(fileStream!=null)
{
WaveFile.WriteWavFile(source, fileStream)
fileStream.Close()
}
直接在catch里处理,先输入清碧信息,在退出这个线答兄举程;System.InvalidOperationException只是异常啊,debug调试的尘差时候肯定会进来的,但不影响你后面的运行,按F5可继续;
你写了一个程锋高巧序,其中要对硬盘上的一个文件 *** 作,FileStream fs = new FileStream(fileName)
这样就是建立了一个文件缓冲流,换句话的意思就是说你通过这条程序,计算机给了一一块内存空间,但是呢这块内存空间不是你想干什么就干涉么的,他是专门存fileName这个文银键件里面的内容的,内存空间的大小,和其他信息,简单地 *** 作时没有办法访问的。当你要念陆从文件里面读取一个Int整数的时候,程序做的不仅仅是读取一个int型整数,他会把该数据附近的一大块数据都读出来放在刚才的那块空间中,为什么这么做呢,因为CPU访问硬盘比访问内存慢多了,所以一开始读出很多的数据,后面需要使用的时候直接使用读出来的,就防止了再次访问硬盘。
相应的,你要网文件里面写入数据,也是先存到这个内存里,等存的东西足够多了,或者过了足够的时间,系统一次性把内容写入硬盘。
Flush的作用就是强制执行了一次把数据写出硬盘,这样,你写入的数据确实到了文件中,否则如果程序突然中断,你要写入的内容也许还没写到文件中,就造成了数据丢失。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)