Java 当我在xml文件中写入信息时,Eclipse显示错误

Java 当我在xml文件中写入信息时,Eclipse显示错误,java,jdom-2,Java,Jdom 2,我使用JDOM库。当我将信息写入xml文件时,Eclipse会显示错误。系统找不到指定的路径。我尝试在“语言”文件夹中创建文件。当我将信息写入此文件时,如何自动创建文件夹?我认为错误在于这一行: FileWriter writer = new FileWriter("language/variants.xml"); 这是我的密码: package test; import java.io.FileWriter; import java.util.LinkedList; import org.

我使用JDOM库。当我将信息写入xml文件时,Eclipse会显示错误。系统找不到指定的路径。我尝试在“语言”文件夹中创建文件。当我将信息写入此文件时,如何自动创建文件夹?我认为错误在于这一行:

FileWriter writer = new FileWriter("language/variants.xml");
这是我的密码:

package test;

import java.io.FileWriter;
import java.util.LinkedList;
import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

class Test {
    private LinkedList<String> variants = new LinkedList<String>();

    public Test() {

    }
    public void write() {

        Element variantsElement = new Element("variants");
        Document myDocument = new Document(variantsElement);

        int counter = variants.size();
        for(int i = 0;i < counter;i++) {
            Element variant = new Element("variant");
            variant.setAttribute(new Attribute("name",variants.pop()));
            variantsElement.addContent(variant);
        }


        try {
            FileWriter writer = new FileWriter("language/variants.xml");
            XMLOutputter outputter = new XMLOutputter();
            outputter.setFormat(Format.getPrettyFormat());
            outputter.output(myDocument,writer);
            writer.close();
        }
        catch(java.io.IOException exception) {
            exception.printStackTrace();
        }
    }
    public LinkedList<String> getVariants() {
        return variants;
    }
}

public class MyApp {
    public static void main(String[] args) {
        Test choice = new Test();
        choice.write();
    }
}
封装测试;
导入java.io.FileWriter;
导入java.util.LinkedList;
导入org.jdom2.Attribute;
导入org.jdom2.Document;
导入org.jdom2.Element;
导入org.jdom2.output.Format;
导入org.jdom2.output.XMLOutputter;
课堂测试{
私有LinkedList变量=新LinkedList();
公开考试(){
}
公共空写(){
元素变量元素=新元素(“变量”);
文档myDocument=新文档(VariantElement);
int counter=variants.size();
对于(int i=0;i
以下是错误:

java.io.FileNotFoundException: language\variants.xml (The system cannot find the path specified)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:212)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:104)
    at java.io.FileWriter.<init>(FileWriter.java:63)
    at test.Test.write(MyApp.java:31)
    at test.MyApp.main(MyApp.java:49)`enter code here
java.io.FileNotFoundException:language\variants.xml(系统找不到指定的路径)
在java.io.FileOutputStream.open(本机方法)
位于java.io.FileOutputStream。(FileOutputStream.java:212)
位于java.io.FileOutputStream。(FileOutputStream.java:104)
位于java.io.FileWriter(FileWriter.java:63)
at test.test.write(MyApp.java:31)
在test.MyApp.main(MyApp.java:49)`这里输入代码

顾名思义,
FileWriter
用于写入文件。如果目录不存在,则需要先创建该目录:

File theDir = new File("language");
if (!theDir.exists()) {
  boolean result = theDir.mkdir();  
  // Use result...
}
FileWriter writer = ...

要创建目录,需要使用File类的mkdir()。 例如:

它返回一个布尔值:如果创建了目录,则返回true;如果失败,则返回false

如果安全管理器存在并且其checkWrite()方法不允许创建命名目录,则mkdir()还会引发安全异常

PS:在创建目录之前,您需要使用exists()验证此目录是否已经存在,exists()还返回布尔值

问候

777先生

File f = new File("/home/user/newFolder");
f.mkdir();