Java ChunkInputStream读取块id标记时遇到问题
我一直在开发一个用于Java的音频/视频容器(如AVI),在从文件中读取块id标记时遇到了一个错误。以下是我遇到的错误Java ChunkInputStream读取块id标记时遇到问题,java,io,inputstream,Java,Io,Inputstream,我一直在开发一个用于Java的音频/视频容器(如AVI),在从文件中读取块id标记时遇到了一个错误。以下是我遇到的错误 java.io.UTFDataFormatException: malformed input around byte 10 at java.io.DataInputStream.readUTF(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at com.hachisoftware.ism.
java.io.UTFDataFormatException: malformed input around byte 10
at java.io.DataInputStream.readUTF(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at com.hachisoftware.ism.ChunkInputStream.readChunk(ChunkInputStream.java:27)
at Main.run(Main.java:72)
at java.lang.Thread.run(Unknown Source)
at Main.main(Main.java:26)
错误发生在String id=in.readUTF()中的这段代码中代码>行
public Chunk readChunk(Chunk type) throws IOException {
String id = in.readUTF();
if(!type.chuckID.equalsIgnoreCase(id.toString()))
throw new IOException("Can't cast Chunk '" + type.chuckID + "' to '" + id + "'");
type.readChunk(in);
return type;
}
所有源代码都可以在以下位置找到:请在此处发布相关代码片段。您是如何编写这些数据的?readUTF()只能读取使用writeUTF()编写的数据。我正在使用它来编写块public void write(Chunk obj)抛出IOException{out.writeUTF(obj.chuckID);flush();obj.writeChunk(out);flush();}
writeChunk()做什么?