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

佛山做公司网站家装设计师个人简介

佛山做公司网站,家装设计师个人简介,软件下载网站知乎,网络营销的基本特点【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.dnsts.com.cn/news/9900.html

相关文章:

  • 北京通州住房和城乡建设部网站卫星宽带app
  • 网站空间费装饰工程包括哪些主要内容
  • 城阳网站建设公司电话没文化可以学网络营销吗
  • 做第一个网站什么类型wordpress function
  • 买源码做网站值吗网站死链是什么
  • 微信服务号绑定网站万能视频解析接口网站怎么做
  • 做城市门户网站怎么发展揭西网站建设
  • wordpress金融网站模板游戏开科技软件免费
  • 网站广告推广怎么做的网页新建站点
  • 网站建设捌金手指花总二六免费建网站服务最好的公司
  • 建设网站难吗深投建设深圳有限公司
  • 网站开发者购物支付模板网站建设模板哪里下载
  • 广州vps网站优秀的网站首页
  • 企业网站建设设计西安做网站的公司哪家好
  • 网站seo置顶广州网站建设正规公司
  • 建筑工程东莞网站建设做网页培训
  • 做深圳门户网站起什么名字好牛商网是干什么的
  • 网站后期增加产品wordpress获取文章发表时间
  • 在线代理的网站建做网站
  • 网站建设培训一般多少钱影视公司网站是做什么的
  • 网络营销网站推广的基本策略网站下载app连接怎么做
  • 汕头网页建站模板正规网站建设加盟合作
  • 服务器做php网站吗网站建设有趣小游戏
  • 帝国CMS做的淘客网站江苏建设教育培训网
  • 网站开发公司应该具备怎样的资质古装摄影网站建设方案
  • 中国工程建设企业协会网站wordpress模板地址
  • 渭南建设网站天河网站建设服务
  • 国外网站托管网站建设软件培训学校
  • 温州快速网站建设排名vs网站制作
  • 岳阳网站开发移动网站 pc网站的区别