一:Try-catch-finally
声明文件对象要在 Try-catch-finally 结构体外边声明
声明在try中的对象有作用域问题,其并不能影响finally中的程序
在catch中显示程序错误代码。
在finally中释放程序,关闭文件流。
二:using语句
1:using指令。
用在使用命名空间中,例如:
Using System.IO;
2:using别名。
using aClass = NameSpace1.MyClass;
这种做法有个好处就是当同一个cs引用了两个不同的命名空间,但两个命名空间都包括了一个相同名字的类型的时候。
当需要用到这个类型的时候,就每个地方都要用详细命名空间的办法来区分这些相同名字的类型。而用别名的方法会更简洁,用到哪个类就给哪个类做别名声明就可以了。
注意:并不是说两个名字重复,给其中一个用了别名,另外一个就不需要用别名了,如果两个都要使用,则两个都需要用using来定义别名的。
using aClass = NameSpace1.MyClass;
using bClass = NameSpace2.MyClass;
namespace NameSpace1
{
public class MyClass
{
public override string ToString()
{
return "You are in NameSpace1.MyClass";
}
}
}
namespace NameSpace2
{
class MyClass
{
public override string ToString()
{
return "You are in NameSpace2.MyClass";
}
}
}
3:using语句:定义一个范围,在范围结束时处理对象。
场景:
当在某个代码段中使用了类的实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例的Dispose。
要达到这样的目的,用try…catch来捕捉异常也是可以的,但用using也很方便。
使用try-catch-finally
string path = @"F:codeFileStreams.txt";
FileStream file = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite);
try
{
// 定义一个字节数组
byte[] bytess = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
file.Write(bytess, 0, bytess.Length);
}
catch (Exception qqqq)
{
MessageBox.Show(qqqq.Message);
}
finally
{
file.Close();
file.Dispose();
}//*/
使用using
string path = @"F:codeFileStreams.txt";
using (FileStream fileUsing = File.OpenWrite(path))
{
// 定义一个字节数组
byte[] bytess = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
fileUsing.Write(bytess, 0, bytess.Length);
fileUsing.Close();
fileUsing.Dispose();
MessageBox.Show("操作成功");
}
测试使用全部代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using aClass = NameSpace1.MyClass;
using bClass = NameSpace2.MyClass;
namespace FileStreams
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 写入文件
/// </summary>
private void button1_Click(object sender, EventArgs e)
{
string path = @"F:codeFileStreams.txt";
/*FileStream file = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite);
try
{
// 定义一个字节数组
byte[] bytess = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
file.Write(bytess, 0, bytess.Length);
}
catch (Exception qqqq)
{
MessageBox.Show(qqqq.Message);
}
finally
{
file.Close();
file.Dispose();
}//*/
using (FileStream fileUsing = File.OpenWrite(path))
{
// 定义一个字节数组
byte[] bytess = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
fileUsing.Write(bytess, 0, bytess.Length);
fileUsing.Close();
fileUsing.Dispose();
MessageBox.Show("操作成功");
}
}
}
}
namespace NameSpace1
{
public class MyClass
{
public override string ToString()
{
return "You are in NameSpace1.MyClass";
}
}
}
namespace NameSpace2
{
class MyClass
{
public override string ToString()
{
return "You are in NameSpace2.MyClass";
}
}
}
有好的建议,请在下方输入你的评论。