我正在用 Java 解析一个 MIDI 文件。首先,我使用以下方法创建一个序列:
Sequence sequence = MidiSystem.getSequence(paFile);
抛出检查的 IOException。我应该以某种方式关闭此资源吗?如果是这样,为什么序列或 MidiSystem 不实现可关闭?
我正在用 Java 解析一个 MIDI 文件。首先,我使用以下方法创建一个序列:
Sequence sequence = MidiSystem.getSequence(paFile);
抛出检查的 IOException。我应该以某种方式关闭此资源吗?如果是这样,为什么序列或 MidiSystem 不实现可关闭?
根据http://docs.oracle.com/javase/7/docs/api/javax/sound/midi/MidiSystem.html#getSequence%28java.io.File%29, MidiSystem.getSequence(File) 抛出 InvalidMidiDataException 和 IOException . 第一个是不言自明的;它说明了您尝试读取不是正确的 midi 文件的内容的可能性。第二个是使用 File 的派生结果;有各种各样的直接错误可能来自于此。(未读取有效文件;磁盘上的坏扇区等)所以不,我认为您不必关闭资源,但您必须决定如何处理这些可能的异常。