【问题标题】:How does fileStream work in Flex?fileStream 在 Flex 中是如何工作的?
【发布时间】:2015-08-18 05:51:17
【问题描述】:

我正在开发一个在 adobe AIR 中读取大型 csv 文件的项目。我通过阅读文件line by line 成功地做到了这一点。

要完全理解文件读取,我需要知道 flex 中的文件流是如何工作的。

  1. 文件流的缓冲区存储在哪里?是否占用空间 在内存中?当我在打开 450MB csv 文件时调试我的应用程序时 并查看原生 fileStream 的 bytesAvailable 属性 显示 450MB。但是应用程序占用的空间不超过70MB 内存(任务管理器)。

  2. 如果我尝试打开一个非常大的文件,应用程序也会崩溃 说 3GB ?(我的 RAM 是 4GB,我在 64 位 Windows 7 操作系统上运行)

answer 表明 fileStream 可以在 C++ 中实现。这是真的吗?

从我目前的研究中得知,filestream 打开了到给定文件的连接并将文件的内容复制到internal buffer

我无法提供任何其他附加信息。 fileStream 的 adobe 文档显示了如何使用它,并且没有提供任何关于我正在寻找的内容。

任何关于 gthis 的信息都会很有帮助。

【问题讨论】:

    标签: apache-flex memory air buffer filestream


    【解决方案1】:

    答案..我认为:How do I use fileStream without reading the file into memory?
    您也可以使用 c 或 c++ 作为“本机进程”,如果您知道它会更容易:)
    *edit - 文件流将数据加载到RAM,检查时不要关闭fileStream。如果 RAM 不足,则会出现“内存不足”或类似情况

    【讨论】:

    • 我在检查内存时没有关闭流。我对应用程序如此低的内存消耗感到惊讶,这就是我发布问题的原因。
    • 本机进程与这些有什么关系。您是否建议 flex 在使用文件流时启动“C”本机进程? (那太荒谬了)
    • 不,我建议使用本机进程而不是文件流。您可以将参数传递给“c”代码 -> 搜索新行 -> 并以字节数组的形式返回所需的结果。我不知道为什么你的记忆力这么低……我做了几次测试,结果都一样
    • 哦.. 但我在使用文件流读取文件时没有问题。我只是想知道它是如何工作的。你是什​​么意思相同的结果?内存不足?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 2014-09-14
    • 2018-03-04
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多