• 深入.net(文件操作)


    自己进行数据的“持久化操作”:

            ----- 数据持久化技术:程序还运行过程中,所有的“中间数据”(加工或处理过程中数据)都存放在内存中,但内存的特点是掉电后数据无法保存,所以需要有种技术能够将存放在内存中数据进行“永久保存”,这样的技术我们称为持久化技术。

     

    以“文件”的方式对数据进行“持久化保存”:

            方式一:直接将内存中的数据,搬运到磁盘文件中  ------ 二进制文件

            方式二:将内存中的数据进行“逻辑转意”为字符,然后再写入到文件 ----- 文本文件

     

    “文本文件”读写操作:

           方式一:(五个步骤,使用FileStream、StreamReader[StreamWrite])

                              //1、创建 “文件流” 对象

                        FileStream fs = new FileStream(filePath, FileMode.Create);

                        //2、创建 “文件读写器”对象

                        StreamWriter sw = new StreamWriter(fs);

                        //3、读写操作

                        sw.Write(this.textBox1.Text);

                        //4、关闭“读写器”

                        sw.Close();

                        //5、关闭“文件流”

                        fs.Close();

          方式二:使用  Using 简化代码(减少关闭的代码和步骤)

                              //1、创建 “文件流” 对象

                        using (FileStream fs = new FileStream(filePath, FileMode.Create))

                        {

                            //2、创建 “文件读写器”对象

                            using (StreamWriter sw = new StreamWriter(fs))

                            {

                                //3、读写操作

                                sw.Write(this.textBox1.Text);

                            }

     

                        }

     

         方式三:直接使用StreamReader、StreamWrite

                        //1、创建 “文件读写器”对象

                            using (StreamWriter sw = new StreamWriter(“D:学员资料.txt”))

                            {

                                //2、读写操作

                                sw.Write(this.textBox1.Text);

                            }

     

    使用“文本文件”实现数据持久化,一来当数据庞大且关系复杂时,其转换为“文本”的过程繁琐容易出错,开发效率低!因此,我们可以尝试将“数据对象”整个的端到磁盘的文件中! ------ 使用二进制文件保存数据【序列化技术】

               序列化操作步骤:

                        1、对“待处理”数据进行“预处理”:将类定义为“可序列化”【要求其所有的家族都是可序列化】

                         2、创建“序列化”操作对象:

                                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter

                         3、创建传输用“流”对象:

                                 FileStream fs = new FileStream();

                         4、序列化操作

                        //创建 “流对象”  (文件流) --- 负责运输

                    using (FileStream fs = new FileStream(@"c:mydata", FileMode.Open))

                    {

                        //创建 “序列化对象”        --- 负责对象【打包】

                        BinaryFormatter bf = new BinaryFormatter();

                        //bf.Serialize(fs, _stuList1);  序列化方法

                        _stuList2 = bf.Deserialize(fs) as List<Student>;  反序列化方法

                    }

     

                                     [Serializable]  可序列化标识代码

     

     

     

     

     

     

     

     

    小贴士:

             文本文件读写,最容易出现的错误就是“乱码”:

                     乱码的出现,是因为您读取和写入时,所采用的“字符编码规则”不一致!

                     注意:

                              读取自己文件 --- 应该采用一致“编码规则”

                              读取第三方文件  ---- 应该采用与其对应“编码规则”,或者,直接使用本机的默认编码规则

                               【设置方式:直接设置到读写器上】

                                 StreamReader sr = new StreamReader(fs,Encoding.Default);

                                  StreamReader sr = new StreamReader(fs,Encoding.UTF8)

                                  StreamReader sr = new StreamReader(fs,Encoding.GetEncoding("gb2312"))

  • 相关阅读:
    面经中高频知识点归纳(四)
    ssh整合思想初步 struts2与Spring的整合 struts2-spring-plugin-2.3.4.1.jar下载地址 自动加载Spring中的XML配置文件 Struts2下载地址
    ssh整合思想初步 structs2 Spring Hibernate三大框架各自要点
    Spring中使用事务搭建转账环境方法二 相对简便的注解方法 ——配置文件注入对象属性需要setter方法 注解方法,不需要生成setter方法
    Spring中使用事务搭建转账环境 转账操作,
    Spring中c3p0连接池的配置 及JdbcTemplate的使用 通过XML配置文件注入各种需要对象的操作 来完成数据库添加Add()方法
    Spring XML配置文件无法自动提示 eclipse中XML配置文件open with打开方式选择 XML Editor:注意它的编辑方式也是有两种的design和source
    Spring中c3p0连接池 jar包下载 c3p0-0.9.2.1 jar包和mchange-commons-java-0.2.3.4 jar 包
    在线聊天项目1.4版 使用Gson方法解析Json字符串以便重构request和response的各种请求和响应 解决聊天不畅问题 Gson包下载地址
    java在线聊天项目1.3版设计好友列表框功能补充,因只要用户登录就发送一串新列表,导致不同客户端好友列表不同问题
  • 原文地址:https://www.cnblogs.com/why168888/p/4283619.html
Copyright © 2020-2023  润新知