我的方法编译但不执行我想要它做的事情。我希望它将文件保存到特定的地图,但它不会这样做

时间:2016-01-29 14:03:28

标签: java

当我运行此代码时,它可以正常工作,但它会将文件保存在'' / Users / alencerimpasic / Dokument / java2015 / projekt /''而不是'' / Users / alencerimpasic / Dokument / java2015 / projekt / Glosforhor''

public static void SparaTillFil(List<Glosförhör> data, String filnamn){
    try {
        String filename = "/Users/alencerimpasic/Dokument/java2015/projekt/Glosforhor/" + filnamn;
        Glosförhör tempGlosförhör = new Glosförhör();
        PrintWriter outFile = new PrintWriter(new BufferedWriter(new  FileWriter(filnamn)));
        int n;
        for (n = 0; n < data.size(); n++) {         
            tempGlosförhör = data.get(n);
            outFile.println(tempGlosförhör.getglosa() + "\n" +   
                            tempGlosförhör.getöversättning() + "\n");
        }
        outFile.close();
    }
    catch(IOException e) {
        JOptionPane.showMessageDialog(null,"It failed");
    }
}//SparaTillFil ends

public static void GöraGlosförhör(List<Glosförhör> data, List<String> sl){
    String språk = JOptionPane.showInputDialog(null, "Write the language the test will be on."); 
    String temp = JOptionPane.showInputDialog(null, "Write the ammount of words you're going to use in the test.");
    int antal = Integer.parseInt(temp);
    for(int n = 0; n < antal; n++) {
        String glosa = JOptionPane.showInputDialog(null, "Write the word!");
        String översättning = JOptionPane.showInputDialog(null, "Write the translation!");
        data.add(new Glosförhör(glosa, översättning));  
    }
    sl.add(språk);
    SparaTillFil(data, språk + ".txt");


}//GöraGlosförhör ends

3 个答案:

答案 0 :(得分:1)

虽然您创建了一个字符串filename,但实际上并没有使用它。您使用new FileWriter(filnamn)代替new FileWriter(filename)。我假设

  

“/用户/ alencerimpasic /库门/ java2015 / PROJEKT /”

是项目根目录,因此FileWriter只选择该项作为要保存的目录。

答案 1 :(得分:0)

你在哪里:

PrintWriter outFile = new PrintWriter(new BufferedWriter(new  FileWriter(filnamn)))

我相信你想要:

PrintWriter outFile = new PrintWriter(new BufferedWriter(new  FileWriter(filename)));

这是为什么非常类似命名的变量可能是源pf错误的一个例子。

答案 2 :(得分:0)

尝试替换

PrintWriter outFile = new PrintWriter(new BufferedWriter(new  FileWriter(filnamn)));

PrintWriter outFile = new PrintWriter(new BufferedWriter(new  FileWriter(filnamne)));