C# 实用文件存储

这里的实例是C# 编写记事本

第一:解决文件读写问题

1.读:文件-打开 click时间是新建一个OpenFileDialog提示框选取文件,读取的方式是采用了FileStream文件流的方式

click方法

<span style="white-space:pre">	</span>OpenFileDialog dlg = new OpenFileDialog();

             if (dlg.ShowDialog() == DialogResult.OK)//判断是否点击了确定按钮
                 textBox1.Text=tools.FileRW.ReadText(dlg.FileName,EncodingUse);
             fName = dlg.SafeFileName;//全局文件名
             FilePath = dlg.FileName.Substring(0, dlg.FileName.IndexOf(fName));//全局文件路径

FileStream读方法

        /// <summary>
        /// //c#文件流读文件
        /// </summary>
        /// <param name="FilePath"></param>
        /// <param name="ReadEncoding">{"Default","UTF-8","ANSI","Unicode","Unicode big encode"}--0,1 ,2 ,3 ,4</param>
        /// <returns></returns>
        public static string ReadText(string FilePath,int ReadEncoding)
        {
            using (FileStream fsRead = new FileStream(@FilePath, FileMode.Open))
            {
                int fsLen = (int)fsRead.Length;
                byte[] heByte = new byte[fsLen];
                int r = fsRead.Read(heByte, 0, heByte.Length);
                string myStr="";
                myStr = System.Text.Encoding.Default.GetString(heByte);

                return myStr;
            }
        }

2.存:直接写入文件即可

<span style="white-space:pre">	</span>/// <summary>
        /// C#文件流写文件,默认追加FileMode.Append ,但是这里没有追加Append
        /// </summary>
        /// <param name="text">要写入的字符串</param>
        /// <param name="FilePath">文件路径+文件名</param>
        public static void WriteText(string text,string FilePath)
        {
            byte[] myByte = System.Text.Encoding.Default.GetBytes(text);
            using (FileStream fsWrite = new FileStream(@FilePath, FileMode.Create, FileAccess.Write))
            {
                fsWrite.Write(myByte, 0, myByte.Length);
            };
        }

3,另存:采用了saveFileDialog和Filestream进行操作

saveFileDialog方法

<span style="white-space:pre">	</span>    SaveFileDialog sfd = new SaveFileDialog();
            sfd.Title = "另存为What?";//
            sfd.InitialDirectory =FilePath;//设置打开路径
            sfd.Filter = "txt files(*.txt)|*.txt|xls files(*.xls)|*.xls|All files(*.*)|*.*";//设置可选文件保存类型
            sfd.FileName = fName;//set value file name
            sfd.DefaultExt = "txt";//set value file suffix
            sfd.AddExtension = true;//<span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19.5px;">获取或设置一个值,该值指示如果用户省略扩展名,文件对话框是否自动在文件名中添加扩展名</span>
            sfd.RestoreDirectory = true;//set y or n remenber last file open path
            if (sfd.ShowDialog() == DialogResult.OK)
            {
               string localFilePath = sfd.FileName.ToString();//get the dialog save file path
               string savename= localFilePath.Substring(localFilePath.LastIndexOf("\\") + 1);//get file save name
                tools.FileRW.WriteText(textBox1.Text, FilePath, savename);//write out

            }

文件另存方法

 <span style="white-space:pre">	</span>/// <summary>
        /// File other write
        /// </summary>
        /// <param name="text">要写入的文件内容</param>
        /// <param name="FilePath">文件路径</param>
        /// <param name="FileName">文件名</param>
        public static void WriteText(string text, string FilePath, string FileName)
        {
            byte[] myByte = System.Text.Encoding.Default.GetBytes(text);
            string bufferName=FilePath+FileName;
            using (FileStream fsWrite = new FileStream(@bufferName, FileMode.Create, FileAccess.Write))
            {
                fsWrite.Write(myByte, 0, myByte.Length);
            };
        }
时间: 2024-08-06 21:29:24

C# 实用文件存储的相关文章

安卓数据持久化:文件存储、SharedPreferences存储以及数据库存储

Android系统中主要提供了三种方式用于简单的实现数据持久化功能: 文件存储(手机自带的内存).SharedPreferences存储以及数据库存储 当然还可以用sd卡存储 读入写出 下面是疯狂java讲义中的关于IO流的一些补充,回忆一下 1,文件存储 手机自带的内存,只能供当前应用程序访问,其他应用程序访问不了,程序卸载这些数据也会随着消失 原理: 基本是先获取一个文件的输出流,然后把信息write进去,最后关闭流 a,通过上下文类context的openFileOutput()方法获得一

分布式文件存储FastDFS(七)FastDFS配置文件具体解释

配置FastDFS时.改动配置文件是非常重要的一个步骤,理解配置文件里每一项的意义更加重要,所以我參考了大神的帖子,整理了配置文件的解释.原帖例如以下:http://bbs.chinaunix.net/thread-1941456-1-1.html,由于原帖中的版本号比較早.所以我针对现有的版本号进行了改动.原帖中没有client.conf的介绍.这里我给加上了. 下文中带有凝视的配置文件下载:http://download.csdn.net/detail/xingjiarong/9445515

化繁为简!文件存储&amp;传输形式的革命

过往,我们在工作中几乎天天都会遇到这样的事情-- 我想分享一个文件给同事,请他们给我反馈让我进行修改,并且每个修改版本都需要存档以便于后续比对校验.反复讨论修正.最普遍的方式,应该是使用电子邮件群发文档,将收集来的不同版本存在本地电脑里,对吧? 然而当我的文件积累得越来越多,需要协作的同事也越来越多时,电子邮件效率低下.安全性与稳定性没有保障的缺点便被放大了.假如有办法能够把工作中的资源进行有效的整合,实现实时共享,那么文件的传输效率和存储便利问题将得到大幅改善. 有这种办法吗?当然有. 答案,

PHP通过文件存储来实现缓存

PHP通过文件存储来实现缓存 在一些数据库数据记录较大,但是服务器有限的时候,可能一条MySQL查询就会好几百毫秒,一个简单的页面一般也有十几条查询,这个时候也个页面加载下来基本要好几秒了,如果并发量高的话服务器基本就瘫痪了,造成一个页面很久也加载不下来,这个时候我们可以使用文件缓存来缓解下MySQL的压力,下面给个使用例子. [php] view plaincopy <?php //页面业务逻辑处理,获得结果 $objPage = new Page_IndexModel($arrParams)

Hadoop文件存储的葵花宝典

文件存储分行存储和列存储,每个存储格式里面又分不同的类型,在实际的应用中如何去使用?怎样去使用?快来围观吧! 文件存储格式,我们在什么时候去指定呢?比如在Hve和Ipala中去创建表的时候,我们除了指定列和分隔符,在它的命令行结尾有STORED AS参数,这个参数默认是文本格式,但是文本不适合所有的场景,那么在这里我们就可以改变文本的信息. 那么到底我们应该选择哪些格式呢?每种格式都有什么样的特点呢?我们为什么要去选择这种格式呢? 一.文本文件: 文本文件是Hadoop里面最基本的文件类型,可以

【Android】14.2 外部文件存储和读取

分类:C#.Android.VS2015: 创建日期:2016-02-27 一.简介 1.基本概念 内部存储的私有可用存储空间一般都不会很大,对于容量比较大的文件,例如视频等,应该将其存储在外部存储设备(SD卡)上. 注意,不要将手机内存和手机内插入的存储卡(手机卡.SD卡)混淆在一起,内存是不能持久存储的,一关机所有信息就全部丢失了,而内部存储(移动经销商卖的手机卡,容量小,但是没有它打不了电话).外部存储(SD卡,容量大,各种文件都能保存)都是可以持久存储的设备,因此才叫文件存储. 可以通过

IOS开发--数据持久化篇之文件存储(一)

前言:个人觉得开发人员最大的悲哀莫过于懂得使用却不明白其中的原理.在代码之前我觉得还是有必要简单阐述下相关的一些知识点. 因为文章或深或浅总有适合的人群.若有朋友发现了其中不正确的观点还望多多指出,不胜感激. 什么叫数据持久化: 在这里我就不照搬教科书上抽象的概念了.我觉得既然要把东西写出来就让它简单明了. 要搞清楚数据持久化,首先要知道数据持久化是相对于缓存而言的,缓存是在程序运行的过程中保存在内存中,程序一旦运行结束,其内存就会被释放.缓存在内存中的数据也就随之消失. 那么数据持久化就是要解

iOS开发——数据持久化Swift篇&amp;通用文件存储

通用文件存储 1 import UIKit 2 3 class ViewController: UIViewController { 4 5 @IBOutlet weak var textField: UITextField! 6 7 @IBAction func btnSave(sender: UIButton) { 8 var text = textField.text as NSString 9 10 //写入文件(可序列化) 11 text.writeToFile(getPath("da

文件存储B+树

文件存储要选用B+树这样的数据结构 “文件存储要选用B+树这样的数据结构”——没记错的话,这是严蔚敏那本数据结构书上的一句结论.不知道是我没细看还是她没细讲,反正当时纯粹应试地记了这么个结论.不求甚解终究不是一个好的学习态度,一直以来我都没有细想过这个事情,直到看到了这篇博文 http://blog.csdn.net/v_JULY_v/article/details/6530142. 此文信息量很大,值得mark下来慢慢精读.今天就暂记一下关于磁盘文件存储选用B+ tree这一点以前没深究过的问