一般情况下,我们进行文件操作时,都是打开或创建文件后就直接使用。例如创建二进制文件并进行二进制数据写入:
using System;
using System.IO;
namespace BinaryFileApplication
{
class Program
{
static void Main(string[] args)
{
BinaryWriter bw;
BinaryReader br;
string s = "101101010100";
// 创建文件
try
{
bw = new BinaryWriter(new FileStream("mydata",
FileMode.Create));
}
catch (IOException e)
{
Console.WriteLine(e.Message + "\n Cannot create file.");
return;
}
// 写入文件
try
{
bw.Write(s);
}
catch (IOException e)
{
Console.WriteLine(e.Message + "\n Cannot write to file.");
return;
}
bw.Close();
// 读取文件
try
{
br = new BinaryReader(new FileStream("mydata",
FileMode.Open));
}
catch (IOException e)
{
Console.WriteLine(e.Message + "\n Cannot open file.");
return;
}
try
{
s = br.ReadString();
Console.WriteLine("String data: {0}", s);
}
catch (IOException e)
{
Console.WriteLine(e.Message + "\n Cannot read from file.");
return;
}
br.Close();
Console.ReadKey();
}
}
}
以上代码参考自http://www.runoob/csharp/csharp-binary-files.html菜鸟教程
然而,笔者因为工作需要,需要先创建文件,在后续的工作再进行写入,一开始代码如下
然而当创建文件后,进行后续字段写入时却出现报错
查询官网API,在https://msdn.microsoft/zh-cn/library/981h90e5(v=vs.100).aspx的备注中可以看到如下字样
所以可知我们这次的错误是由于没有对文件句柄进行关闭导致的,搜索相关文档后更改代码如下:
调试通过,在以后的调用中也没有出现问题。
更多推荐
C#初学者使用file.creat()创建文件后,显示正由另一进程使用
发布评论