作者/收集者:wiserish
开发环境:C#
代码:
c#读mif文件及txt文件代码
using System;
using System.IO;
using System.Collections;namespace ReadMif
{
class LoadMif
{
//attribute
private string m_File_Name;
private System.IO.StreamReader m_fReader;
private System.Collections.ArrayList m_Sentence;
private string[][] m_Words;
//private methord
private void OpenFile()
{
try
{
if (m_File_Name==null)
throw new ArgumentNullException();
if (!File.Exists(m_File_Name))
throw new ArgumentException("Invalid file name"+m_File_Name);
if (Path.GetExtension(m_File_Name)!=null&&!m_File_Name.EndsWith(".mif")&&!m_File_Name.EndsWith(".txt")) throw new Exception("Invalid file type!");
}
//捕获异常
catch (ArgumentNullException ane)
{
Console.WriteLine(ane.ToString());
return;
}
catch (ArgumentException ae)
{
Console.WriteLine(ae.ToString());
return;
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
return;
}
m_fReader=File.OpenText(m_File_Name);//设置打开并要进行读取的文件
}private void ReadFile()
{
string text_line;
m_Sentence=new ArrayList(); //初始化arraylist对象
while ((text_line=m_fReader.ReadLine())!=null);//只要文件未结束
{
if (text_line.Length==0) //空行不读
continue;
m_Sentence.Add(text_line); //将读到的行添加到arraylist对象中
}}
private void PrintContext()
{
foreach(string line in m_Sentence)
{
System.Console.WriteLine(line);
}
}//public methord
public void LoadMifFile(string mif_file) //mif_file为该类与外界的接口,从外界传入文件名
{
m_File_Name=mif_file;
//用成员变量存储外界数据mif_file,用类成员变量实现内部数据流动
//公共成员方法调用私有成员方法实现了底层操作的封装
//用户只需也只能调用LoadMifFile来实现读文件操作
OpenFile();
ReadFile();
PrintContext();
} //end of loadmiffile function
} //end of LoadMif class
} //end of namespace//通过外界主程序调用LoadMif类以实现读mif文件
class MainEntry
{
static void Main(string[] args)
{
ReadMif.LoadMif mif=new ReadMif.LoadMif(); //定义LoadMif类的实例并初始化
if (args.Length==0)
Console.WriteLine(@"Useage: ReadMif miffile.mif to print mif file context on the screen.
For example:
ReadMif test.mif");
else
mif.LoadMifFile(args[0]);
return;
} //end of main
}// end of MainEntry class