3

我正在使用 java 制作一个波形文件编辑器,我们可以在其中使用波形频谱剪切复制粘贴波形文件。为此,我以字节为单位读取波形文件并将它们转换为双数组。它适用于小文件。但是当我一次加载大型波形文件它会引发堆内存不足错误,因为它必须创建该特定文件的大小帧长度的双数组。有没有其他选择,比如将波形文件加载到除了一次加载完整文件之外的部分中。我已经试过了,但是当我加载下一部分时,我无法编辑或播放上一部分。

请帮助我如何将波形文件加载到内存不足错误的编辑器中,以及如何在没有内存问题的情况下进行操作(剪切、复制、粘贴)。请给我示例代码提前谢谢..等待回复

4

2 回答 2

0

您可以加载文件的块。也许看看java.nio。但是,如果保存时波形的顺序或文件大小会发生变化,则您必须随时写入完整的文件来保存更改。然后你可以重新加载你想要编辑的块(文件中的位置可能已经改变,你需要跟踪它)

于 2013-02-21T10:07:17.443 回答
0

从你问的内容很难知道你的意思。一个字节是 8 位,而双精度是 64 位,因此请考虑使用字节数组而不是双精度数组,还可以考虑在调用应用程序时增加 JVM 的内存大小......

如需更多帮助,请发布一些代码...

于 2013-02-21T09:53:33.447 回答