StaXを使用してIOを把握しようとしていますが、読者から「不正な形式」および「早すぎるEOF」エラーが発生し続けます。これは、次の例のように、StaXを使用して作成されたコードの読み取りです。Java、StaXのシンプルなコードですが、解析エラーが発生する、ファイルの早すぎる末尾
私のコードを最も単純な構成に煮詰めましたが、まだエラーが発生します。これはどこから来たのですか?
SSCCE(エラーをスローする必要があります)
package XMLTest;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import javax.xml.stream.XMLEventFactory;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLEventWriter;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLOutputFactory;
public class SaveLoadTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
final String FILE = "test.xml";
//////////// WRITE
final XMLOutputFactory OFACT = XMLOutputFactory.newInstance();
final XMLEventFactory EFACT = XMLEventFactory.newInstance();
final XMLEventWriter WRITER = OFACT.createXMLEventWriter(new FileOutputStream(FILE));
WRITER.add(EFACT.createStartDocument());
WRITER.add(EFACT.createComment("As basic as it gets."));
WRITER.add(EFACT.createEndDocument());
WRITER.close();
//////////// READ
final XMLInputFactory IFACT = XMLInputFactory.newInstance();
final XMLEventReader READER = IFACT.createXMLEventReader(new FileInputStream(FILE));
while (READER.hasNext()) {
READER.nextEvent();
}
}
}
そしてエラー:私は他のいくつかのSOの質問(thisまたはthisは、最も関連性の高いように見える)を見て持っていたが、私は」
Exception in thread "main" javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,49]
Message: Premature end of file.
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:594)
at com.sun.xml.internal.stream.XMLEventReaderImpl.nextEvent(XMLEventReaderImpl.java:85)
at XMLTest.SaveLoadTest.main(SaveLoadTest.java:34)
この状況に関係することに問題があります...
EDIT
また、私はこの読み書きを別々の操作で試みましたが、同じことが起こります。
EDIT要求されたように、第2
XML出力ファイル、。
<?xml version="1.0"?><!--As basic as it gets.-->
あなたの入力XMLも投稿してください。 –
入力XMLがなく、即座に作成されました。ヘッダーを作成し、コメントを作成し、ドキュメントを閉じて、後で読みたいだけです。 – Ben
それは私が意味するものです。 test.xmlはあなたのファイルシステムで利用できるはずです。 –