C# 读写文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace TestFile
{
    class MyFile
    {

        public Boolean checkFile(string path)
        {
            if (System.IO.File.Exists(@path))
            {
                Console.WriteLine("文件存在");
                return true;
            }
            else
            {
                Console.WriteLine("文件不存在..");
                System.IO.File.Create(path);
                return false;
            }


        }


        public void writeAfter(string path, string line)
        {
            StreamWriter rw = File.AppendText(path);
            rw.WriteLine(line);
            rw.Flush();
            rw.Close();

        }

        public List<string> searchById(string path, string id)
        {
            List<string> lines = new List<string>();
            FileStream fileStream = null;
            StreamReader streamReader = null;
            try
            {
                fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
                streamReader = new StreamReader(fileStream, Encoding.Default);
                string content = streamReader.ReadLine();
                while (content != null)
                {
                    if(content.StartsWith(id)){
                        lines.Add(content);
                    }
                    content = streamReader.ReadLine();  
                }
                if (lines.Capacity == 0) {
                    lines.Add("nothing was found");
                }

            }
            catch
            {

            }
            finally
            {
                if (fileStream != null)
                {
                    fileStream.Close();
                }
                if (streamReader != null)
                {
                    streamReader.Close();
                }  

            }
            return lines;
        }

        //删除某一行
        public void deleteOne(string path,string id)
        {
            List<string> lines = new List<string>(File.ReadAllLines(path, Encoding.GetEncoding(936)));
            List<string> results =new List<string>();
            foreach (string line in lines)
            {
                if (!line.StartsWith(id)) {
                    results.Add(line);//这里必须是另一个List   不能对同一个list即删除又遍历的
                    //Console.WriteLine(line + "   del");
                }
                
            }
            File.WriteAllLines(path, results.ToArray(), Encoding.GetEncoding(936));
        }
    }
}

 

posted @ 2013-10-28 23:38  cart55free99  阅读(252)  评论(0编辑  收藏  举报