| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1087 人关注过本帖
标题:请教老师大侠:.NET 存储方式 有 3 种
取消只看楼主 加入收藏
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:9 
请教老师大侠:.NET 存储方式 有 3 种
请教老师大侠:.NET 存储方式 有 3种
.NET 存储方式 有 3种, 即:
1. 文件操作 - StreamWriter
2. 序列化 - Serialize
3. 数据库 - sql servier, access, oracle 等

这样理解对吗?

谢谢指导老师先
搜索更多相关主题的帖子: 存储 access 
2012-05-27 15:15
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
谢谢楼上的回复!

其他老师大侠帮个忙解答一下?

谢谢了!
2012-05-29 21:25
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
以下是引用hellovfp在2012-5-30 11:20:05的发言:

为什么要分三种呢?
对于任何语言来说,数据存储方式就两种,内存(包括系统内存、显示内存,CPU)和外设(包括磁盘,文件)。
放在内存中的数据断电就消失了。放在外设中的数据可以随时装入内存。
万分感谢 hellovfp 老师 的帮助 及 解答。

再请教您:

1. 就外设的磁盘存储 及 相关的的 程序代码 而言,存储包括一楼 的 3 中 方式,这样理解对吗?
2. 您提到的 系统内存、显示内存,CPU, 其中何为 “显示内存”呢?

拜谢您先!!!
2012-05-31 14:12
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
以下是引用hellovfp在2012-5-31 14:36:37的发言:

大部分数据库是将数据存放在文件中的,但也有不同的数据库系统,将数据库放在内存中的数据库系统,这种对于小容量用户数据需求,查询速度和数据传输是非常快的。
显示内存是指硬件显卡上的内存,通常称作显存,我们的游戏图象数据通常还可以通过显卡直接进行光照,变换等数据处理,再送到显示器上显示,形成各种特殊效果。
在计算机对数据处理过程中,总是CPU用寄存器将外设中的数据存取到内存中或是从内存中存取到外设中,
这些数据的流来流去,就形成了我们今天的操作系统和软件的各种应用。
 
C#还可以操作XML,将数据存放在XML中,也可以存放在注册表中,还可以将数据通过网络进行转输,也可以通过GDI+将图象数据存放在图片中,按你的思维你怎么分?
所以没有的必要去区分某个语言对数据存储的方式,只要记住上面从大局的观点看数据的存储就会很明白的。
感谢 hellovfp 老师 的细致讲解,不过对于我初学者 要理解您的解释 还有很长路要走啊。

慢慢去理解体会吧。

每次获得hellovfp老师的帮助,都非常感动。
2012-05-31 19:12
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
以下是引用TonyDeng在2012-5-31 16:06:12的发言:

呵呵,樓主的C#學的挺深入了嘛。
我原以为我的问题很愚钝呢
2012-05-31 19:13
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
以下是引用TonyDeng在2012-5-31 19:29:24的发言:

这三种是不同层次的外部数据使用方式,不是数据存储方式。
噢?
我以为写入方式(streamWriter, sirealize) 就是 存储的意思呢。
2012-05-31 21:39
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
以下是引用TonyDeng在2012-5-31 21:56:29的发言:

stream是流类,一种数据的处理方式,称为“流数据”,是顺序读写数据的意思,像水流,故称“流”。流方式可以用在内存和外存中的数据,从基础stream流类可以派生出字符串流和文件流,都是一种处理手法,与数据存放在什么地方无关。你说的这个streamWriter是流类中派生出来专用于输出(write)的子类。

序列化是一种把数据“复制”到某处(通常是外设文件),然后反序列化把数据原样取回的手法。比如把当前窗体的界面整个(包括文本框之类用户正在输入的数据)复制起来,在必要时复原,就可以使用这种方法。

数据库是不使用流处理数据的,属于一种随机存取的性质。
非常感谢 TonyDeng 老师 的讲解,受益匪浅!

再请教您:
1. streamWriter 是否也是 像 序列化 一样把数据“复制”到某处(通常是外设文件),并通过streamReader 去读取?
2. 文件的存取操作 与 序列化 都是 用“流”来处理数据的,这样理解对吗?
2012-05-31 22:54
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
以下是引用TonyDeng在2012-5-31 23:05:10的发言:

1.steam类隐藏了向具体设备读写的底层细节,它的实际动作与输入输出的设备(是字符串还是内存、外存、磁带机等都不一样)有关,但你使用stream类(及其子类)的时候,不需要关心那些细节,运行库替你处理了。你平时用过的Write()向控制台屏幕输出,就使用了stream流库。

2.一般情形下可以这样理解,但具体也是不需要关心的。

类库的内部操作,通常是不需要程序员关心的东西,除非它设计不好。程序员需要考虑的,是使用哪一个类,视实际需要而定。

太感谢 TonyDeng 老师,被解惑的心情太好了。
谢谢!!
2012-06-01 09:00
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
以下是引用hellovfp在2012-6-1 10:57:19的发言:

呵呵,T版忙完了?
T版的讲解更通俗一些,如果你学习过C++就好了,就是C++中的输入(input)输出(output)流,所以称作IO输入输出,内部代码都是公开的,
如果你想了解这些流类的内部工作源理,都是可以翻看的,C#不提供这些源代码,所以在大部分国内新C#程序员如同T版所说,不需要去关心内部了。但
正是这些不需要,使得一些一上手就使用C#的程序员,出现对一些基本的概念理不清的问题。偶倒是很担心learnerok最后学习的效果不是很好,
缺少某些必要的知识,对于C#学习也只能是管中窥豹,也不知道learnerok学到集合类没有?建议在学习的时候,学习一下偶上次提供的《C#数据结构》一书。
否则对于某些集合类为什么必须实现一些接口函数会感到困惑。
 
拿文件数据流来说吧,其实源数据总是以“复制”的形式流向目的数据地,基本过程: 打开文件->读出文件数据->写入目的地->关闭文件。
试想一下,如果不是复制,让数据真正的移动到目的地后,产生什么后果?源数据消失没有了。从这个也可以推论出数据流总是以复制的方式进行的。
 
C#中网络流也可以通过stream类来进行读写,命名空间中还有一个BufferedStream类用于缓冲读写,缓冲区可提高读取和写入性能。
多谢 hellovfp 指导!

偶没学过C++,也还没读过《C#数据结构》。我会记下您提供的书籍,找时间去书店看看,如果能读懂就买来读。上次您(记得好像是您推荐的)推荐的《.NET你必须知道的》,我已购买,目前在读。我的确需要补课的东东太多了。

您每次的指导,我都会仔细拜读,再慢慢体会。

衷心感谢您!!
2012-06-01 22:11
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
以下是引用TonyDeng在2012-6-1 11:16:06的发言:

初学者还是不要太早接触底层的好,只要用好了现成的类(或者VB中的函数和命令),把工作做起来,到某个时候,自然会有了解底层的需求,到时带着问题和经验去学,收效大得多。过早接触底层,只会令他们茫然的,被技术的细节扰乱,反而不知道如何做程序,那只能叫“知道”技术。现实中程序员大多数的时间,是面临某个需求时,知道使用什么类、函数、命令来解决问题,并把这些手段用好,这种经验积累到一定程度,自然会总结出某种规律,到时猜也能猜到底层运作,到了要学底层知识的时候,就可以结合实际的应用经验,明白底层这样做到底是为着什么目的,而最终,我们不过是学习将来自己如何用底层技术封装出需要的高层类、函数、命令,返回高抽象层次。写程序,太依赖底层其实是很狭窄的路子,费力大而收效微,而现在的计算机应用,大多已经不像以前那样是个人小打小闹可以做得来的了,从底层出发,每一个小的东西都要花费极大精力和时间,注定做不了大项目,充其量是工具性质的小程序。
TonyDeng 老师说的有道理啊!
生活中的各种问题确实是这个道理。在经验积累过程中,根据需求来探究问题更具实用性。
您的开导太好了。
2012-06-01 22:17
快速回复:请教老师大侠:.NET 存储方式 有 3 种
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014682 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved