私の最初の質問は、stax ライターの速度についてでした。ここで問題が発生しました。作成した XML ファイルを削除できません。delete();
今でも何とか使われています。手動で削除しようとしましたが、できませんでした。
ファイル作成の最後に、close()
StreamWriter のメソッドを呼び出します。
このメソッドが完了した直後に、別のファイルでファイルを削除しようとしています。のようなもの:startstopwath;createxml(); stopstopwatch; file.delete()
そこに何かを追加する必要がありますか?
これが私のコードです:
import java.io.*;
import java.util.*;
import javax.xml.stream.*;
import org.springframework.util.StopWatch;
public class StAXVytvor {
public static String subor = "test.xml";
public static void main(String[] args) {
int num =600000;
try {
String encoding = "UTF-8";
XMLOutputFactory f = XMLOutputFactory.newInstance();
XMLStreamWriter w = f.createXMLStreamWriter(new BufferedOutputStream(newFileOutputStream(subor)), "UTF-8");
w.writeStartDocument(encoding, "1.0");
w.writeCharacters("\r\n");
w.writeStartElement("Noviny");
for (int i = 1; i <= num; i++) {
w.writeCharacters("\r\n ");
w.writeStartElement("Author");
w.writeCharacters("\r\n ");
w.writeStartElement("Id");
String ID = Integer.toString(i);
w.writeCharacters(ID);
w.writeEndElement();
w.writeCharacters("\r\n ");
w.writeStartElement("Meno");
w.writeCharacters("Autor"+i);
w.writeEndElement();
w.writeCharacters("\r\n ");
w.writeStartElement("Email");
w.writeCharacters("Author"+i+"@email.com");
w.writeEndElement();
w.writeCharacters("\r\n ");
w.writeStartElement("phone");
w.writeAttribute("type", "pevna");
w.writeCharacters("+4219");
w.writeEndElement();
w.writeCharacters("\r\n ");
w.writeStartElement("plat");
w.writeCharacters("5000");
w.writeEndElement();
w.writeCharacters("\r\n ");
w.writeEndElement();
w.writeCharacters("\r\n");
}
w.writeCharacters("\r\n");
w.writeEndElement();
w.writeCharacters("\r\n");
w.writeEndDocument();
w.close();
System.out.println("success");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
ここで削除しようとしています:
domvytvor.main(args);
try {
File file = new File ("STAX.xml");
if(file.delete() && file1.delete() ){
System.out.println(file.getName() + " is deleted!");
}
else{
System.out.println("Delete operation is failed.");
}
}
catch(Exception e)
{
e.printStackTrace();
}