zoukankan      html  css  js  c++  java
  • C#IO读写文本txt文件中的数据

    C#实现读写文本文件中的数据

    【1】首先我们定义一段假数据,这里以一个string为例字

      

    static void Main(string[] args){
        string data = "我的数据要开始存入文件了,我好开心啊!覆盖了吗?好像覆盖了,真的覆盖了";      
    }
    
    

    【2】接着我们将这个数据写入.txt文件
    代码如下:

    /// <summary>
            /// 保存数据data到文件的处理过程;
            /// </summary>
            /// <param name="data"></param>
    
    
            public static String SavaProcess(string data) {
                System.DateTime currentTime = System.DateTime.Now;
                //获取当前日期的前一天转换成ToFileTime
                string strYMD = currentTime.AddDays(-1).ToString("yyyyMMdd");
                //按照日期建立一个文件名
                string FileName = "MyFileSend" + strYMD + ".txt";
                //设置目录
                string CurDir = System.AppDomain.CurrentDomain.BaseDirectory + @"SaveDir";
                //判断路径是否存在
                if(!System.IO.Directory.Exists(CurDir)){
                    System.IO.Directory.CreateDirectory(CurDir);
                }
                //不存在就创建
                String FilePath = CurDir + FileName;
                //文件覆盖方式添加内容
                System.IO.StreamWriter file = new System.IO.StreamWriter(FilePath,false);
                //保存数据到文件
                file.Write(data);
                //关闭文件
                file.Close();
                //释放对象
                file.Dispose();
                return FilePath;
            }

    结果是返回一个文件路径,根据具体场合可返回,也可不返回;我们来测试一下文件是否生成成功,我们在Main函数中调用这个方法,代码如下:  

    static void Main(string[] args)
            {
                string data = "我的数据要开始存入文件了,我好开心啊!覆盖了吗?好像覆盖了,真的覆盖了";
                String filePath = SavaProcess(data);  
    
         Console.WriteLine(filePath);       
            }

    运行结果如下:

    很显然,在相关目录下,生成了想对应的文件;我们在看看cmd中打印出了如下路径:

      D:\VSProject\SavaProcessToFile\SavaProcessToFile\bin\Debug\SaveDirMyFileSend20170628.txt

    生成的这个路径对我们接下来的工作很重要,读取文本数据的时候需要用到;

    【3】读取.txt文件数据

    我们再定义一个读取数据的方法:

            /// <summary>
            /// 获取文件中的数据
            /// </summary>
            /// <param name="args"></param>


            public static string fileToString( String filePath ){
                string strData = "";
                try
                {
                    string line;
                    // 创建一个 StreamReader 的实例来读取文件 ,using 语句也能关闭 StreamReader
                    using (System.IO.StreamReader sr = new System.IO.StreamReader(filePath))
                    {                  
                        // 从文件读取并显示行,直到文件的末尾 
                        while ((line = sr.ReadLine()) != null)
                        {
                            //Console.WriteLine(line);
                            strData = line;
                        }                    
                    }              
                }
                catch (Exception e)
                {
                    // 向用户显示出错消息
                    Console.WriteLine("The file could not be read:");

    static void Main(string[] args)
            {
                string data = "我的数据要开始存入文件了,我好开心啊!覆盖了吗?好像覆盖了,真的覆盖了";
                String filePath = SavaProcess(data);
                string strData = fileToString(filePath);
                Console.WriteLine(strData);         
            }


                    Console.WriteLine(e.Message);
                }
                return strData;
            }

    看见没?我们这边传入的参数就是生成文件的那个路径,注意,参数的类型是String表示文本的,而不是string表示字符串的,因为我再生成路径的时候就是用的String,所以这里对应起来;

    接下来,我们来测试一下,看我们有没有读取文件成功,看cmd中是否会出现我们最初写入的那个字符串?我们在Main函数中调用方法,代码如下:

      

    运行结果如下:

    结果出现了最开始存的那个字符串;

    【4】写入和读取过程完整代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace SavaProcessToFile
    {
        class Program
        {
            /// <summary>
            /// 保存数据data到文件的处理过程;
            /// </summary>
            /// <param name="data"></param>
            public static String SavaProcess(string data) {
                System.DateTime currentTime = System.DateTime.Now;
                //获取当前日期的前一天转换成ToFileTime
                string strYMD = currentTime.AddDays(-1).ToString("yyyyMMdd");
                //按照日期建立一个文件名
                string FileName = "MyFileSend" + strYMD + ".txt";
                //设置目录
                string CurDir = System.AppDomain.CurrentDomain.BaseDirectory + @"SaveDir";
                //判断路径是否存在
                if(!System.IO.Directory.Exists(CurDir)){
                    System.IO.Directory.CreateDirectory(CurDir);
                }
                //不存在就创建
                String FilePath = CurDir + FileName;
                //文件覆盖方式添加内容
                System.IO.StreamWriter file = new System.IO.StreamWriter(FilePath,false);
                //保存数据到文件
                file.Write(data);
                //关闭文件
                file.Close();
                //释放对象
                file.Dispose();
    
                return FilePath;
            }
    
            /// <summary>
            /// 获取文件中的数据
            /// </summary>
            /// <param name="args"></param>
            public static string fileToString(String filePath){
                string strData = "";
                try
                {
                    string line;
                    // 创建一个 StreamReader 的实例来读取文件 ,using 语句也能关闭 StreamReader
                    using (System.IO.StreamReader sr = new System.IO.StreamReader(filePath))
                    {                  
                        // 从文件读取并显示行,直到文件的末尾 
                        while ((line = sr.ReadLine()) != null)
                        {
                            //Console.WriteLine(line);
                            strData = line;
                        }                    
                    }              
                }
                catch (Exception e)
                {
                    // 向用户显示出错消息
                    Console.WriteLine("The file could not be read:");
                    Console.WriteLine(e.Message);
                }
                return strData;
            }
    
            static void Main(string[] args)
            {
                string data = "我的数据要开始存入文件了,我好开心啊!覆盖了吗?好像覆盖了,真的覆盖了";
                String filePath = SavaProcess(data);
                string strData = fileToString(filePath);
                Console.WriteLine(strData);         
            }
        }
    }

    本文源于zhuxiaoge(http://www.cnblogs.com/zhuxiaoge/p/7094404.html),如有转载请标明出处,不甚感激!!!

    分类: C#修炼之旅

    标签: C#读取写入数据到文件

  • 相关阅读:
    打印空心字符菱形
    良好的布局与风格
    编写递归函数来使字符串逆序
    排序函数重载
    easyui刷新当前页
    Easyui 翻页不保存选中记录
    HTML 字体颜色 色号对照表
    SpringMVC结合ajaxfileupload.js实现文件无刷新上传
    ajax如何传递参数给controller
    eclipse启动tomcat无法访问的解决方法
  • 原文地址:https://www.cnblogs.com/grj001/p/12225083.html
Copyright © 2011-2022 走看看