C# 讀寫文件window form操作代碼

mb78 9年前發布 | 3K 次閱讀 C#

C# 讀寫文件window form操作代碼

///////////創建文件和讀取文件的值

region 判斷文件是否存在,不存在則創建,否則讀取值顯示到窗體

public FormMain() { InitializeComponent();

//ReadFile(Application.StartupPath + "AlarmSet.txt");

//也是判斷文件是否存在
//System.IO.DirectoryInfo info = new System.IO.DirectoryInfo(Application.StartupPath + "AlarmSet.txt");
//MessageBox.Show(info.Exists.ToString());

//MessageBox.Show(Application.StartupPath + "AlarmSet.txt");

//判斷文件是否存在
if (!File.Exists(Application.StartupPath + "AlarmSet.txt"))
{
    //File.Create(Application.StartupPath + "AlarmSet.txt");//創建該文件

    FileStream fs1 = new FileStream(Application.StartupPath + "AlarmSet.txt", FileMode.Create, FileAccess.Write);//創建寫入文件
    StreamWriter sw = new StreamWriter(fs1);
    sw.WriteLine("[runtype]");//開始寫入值
    sw.WriteLine("type=1");

    sw.WriteLine("rn");

    sw.WriteLine("--報警設置 PPWS 號牌匹配位數 PPWZ 匹配位置 0前匹配 1后匹配");
    sw.WriteLine("[Alarm]");
    sw.WriteLine("PPWZ=0");
    sw.WriteLine("PPWS=8");

    sw.WriteLine("rn");

    sw.WriteLine("[Server]");
    sw.WriteLine("ListenPort=2005");

    sw.WriteLine("rn");

    sw.WriteLine("[Form]");
    sw.WriteLine("PPWZ=0");

    sw.Close();
    fs1.Close();

}

//讀取文件值并顯示到窗體
FileStream fs = new FileStream(Application.StartupPath + "AlarmSet.txt", FileMode.Open, FileAccess.ReadWrite);
StreamReader sr = new StreamReader(fs);
string line = sr.ReadLine();
int curLine = 0;
while (line != null)
{
    if (++curLine == 7 && line.Equals("PPWZ=0"))//文件第7行并且值為PPWZ=0的時候設置單選鈕選中前匹配
    {
        radioButton1.Checked = true;
        radioButton2.Checked = false;
        //MessageBox.Show("前");
    }
    else if (curLine == 8 && line.Equals("PPWZ=1"))//文件第8行并且值為PPWZ=1的時候設置單選鈕選中后匹配
    {
        radioButton2.Checked = true;
        radioButton1.Checked = false;
        //MessageBox.Show("后");
    }

    if (curLine == 8)//文件第8行
    {
        textBox1.Text = line.Substring(line.LastIndexOf("=") + 1);//截取=號后邊的值
    }

    //MessageBox.Show("第" + (++curLine).ToString() + "行:   " + line);
    //Console.WriteLine("第" + (++curLine).ToString() + "行:   " + line);
    line = sr.ReadLine();
}
sr.Close();
fs.Close();

}

endregion

///修改文件的值

region 保存設置 按鈕 按下

private void button6_Click(object sender, EventArgs e) { if(radioButton1.Checked == true ) { EditFile(7, "PPWZ=0", Application.StartupPath + "AlarmSet.txt"); EditFile(8, "PPWS=" + textBox1.Text, Application.StartupPath + "AlarmSet.txt"); }

if (radioButton2.Checked == true)
{
    EditFile(7, "PPWZ=1", Application.StartupPath + "AlarmSet.txt");
    EditFile(8, "PPWS=" + textBox1.Text, Application.StartupPath + "AlarmSet.txt");
}

}

endregion

region 設置匹配

public static void EditFile(int curLine, string newLineValue, string patch) { FileStream fs = new FileStream(patch, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("utf-8"));//解決寫入文件亂碼 string line = sr.ReadLine(); StringBuilder sb = new StringBuilder(); for (int i = 1; line != null; i++) { sb.Append(line + "rn"); if (i != curLine - 1) line = sr.ReadLine(); else { sr.ReadLine(); line = newLineValue; } } sr.Close(); fs.Close(); FileStream fs1 = new FileStream(patch, FileMode.Open, FileAccess.Write); StreamWriter sw = new StreamWriter(fs1); sw.Write(sb.ToString()); sw.Close(); fs.Close(); }

endregion</pre>


 本文由用戶 mb78 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!