当前位置: 首页 > news >正文

建站之星官网WordPress的mx主题

建站之星官网,WordPress的mx主题,福州网红餐厅,桂林旅游攻略必去景点【C#/Java】【小白必看】不要只会读写文本文件了#xff01;对象序列化助你提高效率 ​ 在编程的世界里#xff0c;文件的读写操作是我们经常面对的任务之一。 ​ 当我们只涉及简单的文本文件时#xff0c;这个任务似乎并不复杂。但是#xff0c;当我们处理更为复杂的类对…【C#/Java】【小白必看】不要只会读写文本文件了对象序列化助你提高效率 ​ 在编程的世界里文件的读写操作是我们经常面对的任务之一。 ​ 当我们只涉及简单的文本文件时这个任务似乎并不复杂。但是当我们处理更为复杂的类对象时逐个字段进行读取和写入会显得非常繁琐。更为严峻的是当类的字段发生变化时我们需要同时修改读取和写入模块而且还要考虑与原有版本文件的兼容性。 1. 为什么需要对象序列化 ​ 在面对复杂的类结构时逐个字段进行读取和写入是非常不便利的。这种方式容易导致代码的冗长和维护的困难。而对象序列化则能够将整个对象保存到文件中不仅减少了代码量还提高了代码的可维护性。此外对象序列化还能够解决不同版本之间的兼容性问题使得在类结构发生变化时我们仍然能够正确地读取旧版本的文件。 例子个人信息的存取 ​ 设想一下当我们开发一个系统时需要对个人信息进行保存。刚开始只有用户名、密码、邮箱可随着系统越来越完善所含有的变量也越来越多这时候如果还是按照原有的思路一个变量一个变量进行读写很有可能产生遗漏且代码庞杂不美观。 ​ 我们以一个包含多个字段的PersonalInfo类为例展示逐个字段读写和对象序列化之间的对比。 以C#为例 首先我们看一下逐个字段读写的示例 using System; using System.Diagnostics; using System.IO;class Program {class PersonalInfo{public string UserName { get; set; }public string Email { get; set; }public string Password { get; set; }public int Level { get; set; }public string Avatar { get; set; }public string Signature { get; set; }// ... 可能还有其他字段 ...}static void Main(){PersonalInfo person new PersonalInfo{UserName JohnDoe,Email johnexample.com,Password securepassword,Level 3,Avatar avatar.jpg,Signature Hello, world!// ... 其他字段的初始化 ...};Stopwatch stopwatch new Stopwatch();// 逐个字段写入using (StreamWriter writer new StreamWriter(person.txt)){stopwatch.Start();writer.WriteLine(person.UserName);writer.WriteLine(person.Email);writer.WriteLine(person.Password);writer.WriteLine(person.Level);writer.WriteLine(person.Avatar);writer.WriteLine(person.Signature);// ... 其他字段的写入 ...stopwatch.Stop();}Console.WriteLine($逐个字段写入耗时{stopwatch.ElapsedMilliseconds} 毫秒);// 重新初始化 PersonalInfo 对象person new PersonalInfo();// 逐个字段读取using (StreamReader reader new StreamReader(person.txt)){stopwatch.Restart();person.UserName reader.ReadLine();person.Email reader.ReadLine();person.Password reader.ReadLine();person.Level int.Parse(reader.ReadLine());person.Avatar reader.ReadLine();person.Signature reader.ReadLine();// ... 其他字段的读取 ...stopwatch.Stop();}Console.WriteLine($逐个字段读取耗时{stopwatch.ElapsedMilliseconds} 毫秒);} }接下来我们看一下对象序列化的示例 using System; using System.Diagnostics; using System.IO; using Newtonsoft.Json;class Program {class PersonalInfo{public string UserName { get; set; }public string Email { get; set; }public string Password { get; set; }public int Level { get; set; }public string Avatar { get; set; }public string Signature { get; set; }// ... 可能还有其他字段 ...}static void Main(){PersonalInfo person new PersonalInfo{UserName JohnDoe,Email johnexample.com,Password securepassword,Level 3,Avatar avatar.jpg,Signature Hello, world!// ... 其他字段的初始化 ...};Stopwatch stopwatch new Stopwatch();// 对象序列化stopwatch.Start();string json JsonConvert.SerializeObject(person);File.WriteAllText(person.json, json);stopwatch.Stop();Console.WriteLine($对象序列化耗时{stopwatch.ElapsedMilliseconds} 毫秒);// 重新初始化 PersonalInfo 对象person new PersonalInfo();// 对象反序列化stopwatch.Restart();string jsonString File.ReadAllText(person.json);PersonalInfo deserializedPerson JsonConvert.DeserializeObjectPersonalInfo(jsonString);stopwatch.Stop();Console.WriteLine($对象反序列化耗时{stopwatch.ElapsedMilliseconds} 毫秒);} }​ 通过上述例子我们可以清晰地看到使用对象序列化的代码更加简洁、清晰并且不需要关心逐个字段的读写细节。 ​ 特别是在处理大型复杂对象时对象序列化的优势更为明显。这种方式可以提高代码的可读性减少冗余操作并确保在类结构发生变化时仍能正确处理文件的读写操作。 2. C#中的对象序列化 ​ 在C#中我们常用的对象序列化工具是Newtonsoft.Json。该工具提供了强大而灵活的功能使得对象序列化变得异常简单。下面通过一个例子来说明 // 定义一个示例类 public class PersonalInfo {public string UserName { get; set; }public string Email { get; set; }public string Password { get; set; }public int Level { get; set; }public string Avatar { get; set; }public string Signature { get; set; }// ... 其他字段 ... }// 对象序列化示例 PersonalInfo person new PersonalInfo {UserName JohnDoe,Email johnexample.com,Password securepassword,Level 3,Avatar avatar.jpg,Signature Hello, world!// ... 其他字段的初始化 ... };string json JsonConvert.SerializeObject(person); File.WriteAllText(person.json, json);// 对象反序列化示例 string jsonString File.ReadAllText(person.json); PersonalInfo deserializedPerson JsonConvert.DeserializeObjectPersonalInfo(jsonString);3. Java中的对象序列化 ​ 在Java中我们使用Object流来实现对象的序列化。下面是一个简单的Java示例 import java.io.*;// 定义一个示例类 class PersonalInfo implements Serializable {String userName;String email;String password;int level;String avatar;String signature;// ... 其他字段 ...// 构造函数public PersonalInfo(String userName, String email, String password, int level, String avatar, String signature) {this.userName userName;this.email email;this.password password;this.level level;this.avatar avatar;this.signature signature;// ... 其他字段的初始化 ...} }// 对象序列化示例 PersonalInfo person new PersonalInfo(JohnDoe, johnexample.com, securepassword, 3, avatar.jpg, Hello, world!);try (ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(person.ser))) {oos.writeObject(person); }// 对象反序列化示例 try (ObjectInputStream ois new ObjectInputStream(new FileInputStream(person.ser))) {PersonalInfo deserializedPerson (PersonalInfo) ois.readObject(); }4.结语 ​ 通过以上示例我们清晰地展示了对象序列化的威力。在处理类结构较为庞大的情况下对象序列化能够使代码更加简洁、可读性更强同时保证了不同版本之间的兼容性。不妨尝试使用对象序列化提高你的代码效率让读写操作变得更加轻松
http://www.hkea.cn/news/14414053/

相关文章:

  • 网站开发工程师前景怎么样seo优化网站
  • 广东网站建设微信商城开发zara网站建设需求分析
  • 2012年网站设计方法网页设计基础代码网站
  • 建设信息港查询福州搜索优化技术
  • 平舆网站建设阿里云网站主体变更怎么做
  • 唐山网站制作服务公司中国人做跨电商有什么网站
  • 网站推广的6个方法是什么接项目做的网站
  • 网站目录结构说明带视频的网站模板
  • 关于重新建设网站的请示济南网站制作策划
  • 新网官方网站企业网站设计html代码
  • php制作招聘网站湖北做网站教程哪家好
  • 制作网站报价单分类网站 php
  • 注册域名怎么做网站wordpress怎么下载文件
  • 杭州网站制作多少钱网站开发的经费预算
  • 范湖网站建设哪家便宜网站竞价排名
  • app网站开发案例wordpress可以做外贸
  • 制作网站建设的wordpress中.htaccess
  • 我要自学网网站建设选择网站建设公司应该注意什么
  • 山西省住房城乡建设厅网站百度怎么发布自己的广告
  • dedecms网站乱码设计公司排名
  • 网站设计客户案例wordpress 课程
  • 医院网站icp备案吗做特卖的网站
  • 网站建设与推广的步骤WordPress创建简码
  • wordpress后台加站点图标常州网页公司
  • 揭阳智能模板建站长沙设计网站多少钱
  • 网站首页文件名通常是网站建设规划方案书
  • 电子商务和网站建设方案wordpress 图片重命名
  • 快速优化seoseo网络优化推广
  • php做网站自动生成前台吗网站建设网站营销网站托管一体化
  • wordpress 4.0 中文主题东莞百度seo排名