文件读写类

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

namespace BrilCommon
{

     /* 功能:文本文件读写操作
     */
    public static class Txt
    {
        /// <summary>
        /// 读取按行存储数据的文本配置文件
        /// </summary>
        /// <param name="FileName">路径文件名</param>
        /// <param name="KeyName">配置项关键字</param>
        /// <param name="defaultvalue">当配置项关键字不存在时的默认值</param>
        /// <returns></returns>
        public static string Read(string FileName, string KeyName, string defaultvalue = "")
        {
            try
            {
                StreamReader sr = new StreamReader(FileName);
                string tStr = "";
                bool isFind = false;
                while (!sr.EndOfStream)
                {
                    tStr = sr.ReadLine();
                    if (tStr.IndexOf(KeyName) >= 0)
                    {
                        tStr = tStr.Replace(KeyName, "");
                        isFind = true;
                        break;
                    }
                }
                sr.Close();
                if (isFind)
                {
                    return tStr;
                }
                else
                {
                    return defaultvalue;
                }
            }
            catch (Exception ex)
            { throw ex; }
        }
        /// <summary>
        /// 写入按行存储数据的文本配置文件
        /// </summary>
        /// <param name="FileName">路径文件名</param>
        /// <param name="KeyName">配置项关键字</param>
        /// <param name="Value">要写入的值</param>
        public static void Write(string FileName, string KeyName, string Value)
        {
            try
            {
                string strall = "", tStr = "";
                bool isFind = false;
                int NameStart= FileName.LastIndexOf('\\');
                if (NameStart >= 0)
                {
                    string dir = FileName.Substring(0, NameStart);
                    if (!Directory.Exists(dir))
                    { Directory.CreateDirectory(dir); }
                }
                if (File.Exists(FileName))
                {
                    StreamReader sr = new StreamReader(FileName);
                    while (!sr.EndOfStream)
                    {
                        tStr = sr.ReadLine();

                        if (tStr.IndexOf(KeyName) >= 0)
                        {
                            tStr = KeyName + Value;
                            isFind = true;
                        }
                        strall += tStr + Environment.NewLine;

                    }
                    sr.Close();
                }
                if (!isFind)
                {
                    tStr = KeyName + Value;
                    strall += tStr;
                }
                else
                {
                    strall = strall.Substring(0, strall.Length - Environment.NewLine.Length);
                }
                StreamWriter sw = new StreamWriter(FileName, false);
                sw.Write(strall);
                sw.Close();
            }
            catch (Exception ex)
            { throw ex; }
        }
        /// <summary>
        /// 按指定编码格式在文本文件中写入数据
        /// </summary>
        /// <param name="FileName">路径文件名</param>
        /// <param name="Value">文本数据</param>
        /// <param name="code">编码</param>
        public static void Write(string FileName, string Value, Encoding code)
        {
            try
            {
                FileStream fs;
                string Dir = FileName.Substring(0, FileName.LastIndexOf('\\'));
                if (!Directory.Exists(Dir))
                {
                    Directory.CreateDirectory(Dir);
                }
                if (!File.Exists(FileName))
                {
                    fs = File.Create(FileName);
                }
                else
                {
                    fs = new FileStream(FileName, FileMode.Append);
                }
                StreamWriter sw = new StreamWriter(fs, code);
                sw.Write(Value);
                sw.Close();
                fs.Close();
            }
            catch (Exception ex)
            { throw ex; }
        }
        /// <summary>
        /// 用ANSI编码向文本中追加字符串
        /// </summary>
        /// <param name="FileName">路径文件名</param>
        /// <param name="Value">文本数据</param>
        public static void Write(string FileName, string Value)
        {
            Write(FileName, Value, Encoding.Default);
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件写入与读写 综合成数据库读写形式 如#ifndef FILE_OPERATE_H_IF #define FILE_OPERATE_H_IF #include <string> using namespace std; class Fe_Sd_Error{/*****给数据模型录入数据 数据溢出*****/}; class Ee_er_error{/**执行插入文件 文件打开失败**/}; class Gt_Da_error{/**取出数据 文件打开失败***/}; class Fe_Ce_Da_error{ /**创建一个数据模型 数组元素不能为空**/ }; class File_operate{ private: string fe_data;//录入数据 string fe_conter_path;//当前操作路径 string fe_name;//文件名 string fe_filepath;//当前文件路径 string fe_datastr;//取出的数据字符串 int fe_max_data;//存入数据数组大小 int fe_num_data;//存入数据数组记数 string fe_arrdata[20];//取出的数据存入数组 int fe_num_arrdata;//取出数据数组大小 public: File_operate(); File_operate(char *filepath);//构造函数 ~File_operate(); void fe_setfilepath(char *fpath);//设置当前文件路径 |fpath 要操作的文件路径 void fe_setfname(char *fname);//设置要操作的文件名 |fpath要操作的文本名 string fe_getfilepath();//取出当前文件路径 string fe_getfname();//取出当前操作的文件名 int fe_create_folder(char *cpath);//创建文件夹 |path要创建文件夹的路径 成功返回1 失败返回0 int fe_del_file(char *dpath);//删除文件 |path要删除文件夹的路径 void fe_create_data(int n);//创建一个数据 准备录入 |录入的数据的字段数 void fe_setfield(char *field,char *data);//对创建的数据进行录入 |data要录入的数据 |field要录入的字段名 void fe_getfield(/*char *type,*/char *field,char *data);//取出数据各个字段 |type以什么格式取数据 |date接收的指针 int fe_execute_enter();//执行录入数据 int fe_get_data();//取出数据 void fe_crete_update();//创建修改文件 void fe_setchange_data(char *fdname,char *data);//要修改的字段的数据 |fdname 要修改的字段名 |data要修改的数据 void fe_execute_update();//执行修改 int fe_exist_file(char *path);//判断文件是否存在 |path 判断的文件路径 void fe_ergodic_folder(char *filePath);//遍历出文件目录下所有的文件 |path 文件夹路径 返回一个装着文件的字符串数组 最后一个元素是'/fd' }; #endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值