增加Java中的虚拟内存

时间:2015-07-10 17:17:04

标签: java memory

我有一个java应用程序,它可以加载1GB的音乐文件,但由于可用的RAM不多,因此会出现OutofMemory错误。它适用于尺寸小于600 mb的较小文件(当我将最小和最大可用内存设置为512mb和1536mb时也是如此)。我使用的是2GB RAM机器

我需要知道是否可以使用我的硬盘代替RAM(由于存储限制)。如果是,请您参考这些文章以供参考。

我正在使用此代码来播放音乐:

DataLine.Info info = new DataLine.Info(Clip.class, format, size);
audioStream.read(audio, 0, size);

audioClip = (Clip) AudioSystem.getLine(info);
audioClip.addLineListener(this);
audioClip.open(format, audio, 0, size);

如果我遗漏了某些内容,请发表评论。

2 个答案:

答案 0 :(得分:2)

最好只播放音乐

http://www.codejava.net/coding/how-to-play-back-audio-in-java-with-examples

从给定的声音文件创建AudioInputStream:     文件audioFile = new File(audioFilePath);

AudioInputStream audioStream = AudioSystem.getAudioInputStream(audioFile); 

获取音频格式并创建DataLine.Infoobject:

AudioFormat format = audioStream.getFormat();

DataLine.Info info = new DataLine.Info(Clip.class, format);  

获取剪辑:

Clip audioClip = (Clip) AudioSystem.getLine(info);

打开AudioInputStream并开始播放:

audioClip.open(audioStream);

audioClip.start();

关闭并释放获得的资源:

audioClip.close();

audioStream.close();

答案 1 :(得分:0)

你可以这样做,它被称为虚拟内存或页面文件。

因为你在Windows上,你会想去:

控制面板 - 系统和安全 - 系统 - 高级系统设置 - 性能 - 高级选项卡

然后您应该看到一个用于更改可用虚拟内存量的选项。

这有一个主要的缺点,因为RAM是专门设计的内存并且它非常快,所以你不会从你的硬盘内存中获得相同的性能。在资源意义上,更好的选择是流式传输音频,然后以这种方式对其进行操作,如果这是一个选项。