2012-01-15 55 views
0

目前我正在研究一个应用程序,它从Twitter API中读取流并将其解析为对象。 目前我读取流并使用DataContractJsonSerializer中的ReadObject来创建我的对象。我该如何继续阅读层出不穷的流畅

这很好用!

但是,我很担心在我的程序遇到流(互联网变慢或w/e)的情况下会发生什么情况,并且没有足够的数据来解析......该方法将可能会抛出异常,但我想等待新数据,然后重试同一个对象并继续。

另外我想知道如何让方法更稳定,以防万一数据会进入流或类似的东西。

预先感谢任何答案/想法:)

+0

如果数据损坏,您只能得到一个异常。否则,只要有足够的数据,就可以反序列化它。 – Groo 2012-01-15 03:02:05

回答

0

如果你的程序与Twitter的饲料赶上,在DCJS应该只是阻止,直到你得到足够的数据来完成阅读。这通常不是问题,因为数据流旨在隐藏读者的延迟。

更有可能的是,你不会赶上,而是保持落后,直到你用完内存,抛出一个OOME,程序会崩溃。

我会建议,而不是试图分析流动的流,写它像一个文件,并从中读取(也许甚至并行,使用滚动文件或东西)。

+0

谢谢你的反应! 但是,然后我有一个文件流,我怎么能在流中发现错误? 我想我主要想知道的是:我如何找到下一个好的数据安宁。如果我落后阅读,最终我会想跳过一段,然后继续阅读文件中的最新部分,这也需要找到一个开始的好地方。 尽管如果我想到它,我怀疑一个电脑会处理数据慢,那么它会从互联网流接收,如果处理意味着解析它到一个结构/类 – user1149942 2012-01-15 14:39:02