【问题标题】:Serialize Hash Table of StreamReaders序列化 StreamReader 的哈希表
【发布时间】:2013-12-31 17:09:55
【问题描述】:

是否可以在 c sharp 中序列化具有字符串作为键和 StreamReader 作为值的哈希表?我想将一堆文件读入哈希表并将哈希表存储在二进制文件中(并且这样做很多次)。如果是这样,我该怎么做?我记得有一段时间尝试过这个,但我使用的 StreamReader 或 FileReader 对象不可序列化并且它不起作用。我应该使用哪个对象?或者这不可能?

如果这是不可能的,将文件存储在哈希表中的最佳方式是什么?想一想:每个文件 300 mb 的文本(但更现实的是每个文件 10 mb,其中大约 10 个)。细绳? StringBuilder 对象?

【问题讨论】:

    标签: c# serialization stream hashtable filestream


    【解决方案1】:

    流只是从某个地方读取字节的抽象。如果您想将多个文件存储在一个文件中,则需要实际读取流到byte 数组中并对其进行序列化。

    如果只是文本文件,您可以使用File.ReadAllText 读取它们并将字符串存储在Dictionary<whatever, string> 中。请不要使用HashTable,它已经过时了大约五年。

    【讨论】:

    • 是的,就是这样,但是文本文件可能很大,比如 300 mb。把它放在一个字符串中会导致问题吗?比如内存不足错误等?谢谢!
    • 只要你有 300mb 内存就可以了。如果文件变大,您可以逐字节读取它们并分段序列化它们。
    • 好的!谢谢,那将是最坏的情况!谢谢!
    【解决方案2】:

    文件的内容会改变吗?如果没有,您可以只存储文件名。

    【讨论】:

      猜你喜欢
      • 2013-04-17
      • 1970-01-01
      • 2015-03-12
      • 2016-11-16
      • 2013-06-25
      • 2013-03-16
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多