将内容保存到文件中,然后将其读回并显示
Posted
技术标签:
【中文标题】将内容保存到文件中,然后将其读回并显示【英文标题】:Saving the contents to a file and then reading it back and displaying it 【发布时间】:2014-01-23 10:28:58 【问题描述】:我有一些细节是 Canvas 上的图像、文本框中的 XAML 和列表框中的项目。无论扩展名如何,如何将所有这些内容保存在一个文件中。我还应该能够打开这些文件并将所有内容放回它们的位置,即 Canvas 中的图像、文本框中的 XAML 和列表框中的项目。我尝试将详细信息保存在 String 中并保存,但我无法再次打开并放回内容。
我用来保存内容的代码是:
String Data = imagesource + xamldata + xamldesign + listboxitems;
try
System.IO.StreamWriter file = new System.IO.StreamWriter(saveFileDialog.FileName);
file.WriteLine(Data);
file.Close();
这里的 imagesource 是获取图像的来源。 xamldata 来自文本框,listboxitems 包含列表框中的项目列表。
【问题讨论】:
【参考方案1】:不,不。 这里的事情有点复杂。您应该理解并接受一种称为“序列化”的新范例——列表中的所有这些东西:图像、文本、列表框中的项目具有不同的性质和目的,它们可以很容易地存储在同一个文件中,但应该是: 1. 尊贵的 2. 适当处理 - 即您将图像作为一系列字节,将其放在文件中的某个位置(由长度或数据结构本身定义),然后在加载时将其从文件中取回,重新创建图像,将其放在画布,文本和元素也是如此。
计算机只是无法读懂你的想法并理解哪些字节去了哪里。您可以“教”它如何正确处理您存储的部分信息。通常会创建这样的任务类,例如:
public class StoreClass
public byte[] Image get;set;
public string Text get;set;
public List<MyListItem> ListContent get;set;
//here goes MyListItem definition
public class MyListItem ....
然后在需要时填充此类并将其序列化到磁盘上,然后从磁盘加载它(过程称为“去序列化”)并将其内容放置在正确的位置。
您可以阅读更多here
【讨论】:
以上是关于将内容保存到文件中,然后将其读回并显示的主要内容,如果未能解决你的问题,请参考以下文章
将 PCM 录制的数据写入 .wav 文件(java android)