代码改变世界

C# 使用List泛型读取和保存文本文件

2010-01-30 11:14  曾祥展  阅读(10856)  评论(1编辑  收藏
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Management;//添加引用
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //测试代码: 
            test mgr = new test();
            mgr.WriteListToTextFile(mgr.GetUserNames(), @"c:\test.txt"); //测试生成新的Txt文件
            List<string> list = mgr.ReadTextFileToList(@"C:\test.txt");//记取字符串 
            foreach (string s in list) Console.WriteLine(s); //显示出来′ 
            Console.ReadKey(); //按′任一键关闭Console 
         
            /*
             * 结果:
             *  JUQI\ASPNET
                JUQI\capable
                JUQI\Guest
                JUQI\itd0300166
                JUQI\IUSR_PLSH166
                JUQI\IWAM_PLSH166
                JUQI\SUPPORT_388945a0
             * 
             * */

        }
    }
        public class test
        {

            /// <summary>
            /// 获取本机上的用户帐户
            /// </summary>
            /// <param name="domainName"></param>
            /// <returns></returns>
            public  List<String> GetUserNames()
            {
                ManagementClass mcs = new ManagementClass("Win32_UserAccount");
                ManagementObjectCollection moc = mcs.GetInstances();
                List<String> lstNames = new List<string>();
                foreach (ManagementObject mo in moc)
                {
                    lstNames.Add(Environment.UserDomainName + "\\" + mo.GetPropertyValue("Name").ToString());
                    //domainName = mo.GetPropertyValue("Domain").ToString();
                }
                return lstNames;
            }


            //将List转换为TXT文件
            public void WriteListToTextFile(List<string> list, string txtFile)
            {
                //创建一个文件流,用以写入或者创建一个StreamWriter 
                FileStream fs = new FileStream(txtFile, FileMode.OpenOrCreate, FileAccess.Write);
                StreamWriter sw = new StreamWriter(fs);
                sw.Flush();
                // 使用StreamWriter来往文件中写入内容 
                sw.BaseStream.Seek(0, SeekOrigin.Begin);
                for (int i = 0; i < list.Count; i++) sw.WriteLine(list[i]);
                //关闭此文件t 
                sw.Flush();
                sw.Close();
                fs.Close();
            }


            //读取文本文件转换为List 
            public List<string> ReadTextFileToList(string fileName)
            {
                FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
                List<string> list = new List<string>();
                StreamReader sr = new StreamReader(fs);
                //使用StreamReader类来读取文件 
                sr.BaseStream.Seek(0, SeekOrigin.Begin);
                // 从数据流中读取每一行,直到文件的最后一行
                string tmp = sr.ReadLine();
                while (tmp != null)
                {
                    list.Add(tmp);
                    tmp = sr.ReadLine();
                }
                //关闭此StreamReader对象 
                sr.Close();
                fs.Close();
                return list;
            }
        }

    }