Java写入文件并由fileChooser保存

时间:2016-11-03 16:43:21

标签: java netbeans-8 filechooser

我是java新手并且使用netbeans 8将我的代码从VB过去两年移动到java。 现在我想将循环语音数据写入文件和最后  使用下面的FlieChooser将生成的文件保存到特定的位置 是我的代码,但是当我在doilog中输入名称并按下回车键时,我在“我的桌面”中看不到任何文件:

public void   SaveToFile() throws IOException {
 try (Writer writer = new BufferedWriter(new OutputStreamWriter(
          new FileOutputStream("test.txt"), "utf-8"))) {
     int i=0;
     String Data[]=new String[10];
   while( i<10 ){
 writer.write("Student No :" + i);
  Data[i]= "Student No :" + i;
  ++i;
    }



   }

        int userSelection = db.showSaveDialog(this);
     if (userSelection == JFileChooser.APPROVE_OPTION) {
        File fileToSave = db.getCurrentDirectory();
                    String path = fileToSave.getAbsolutePath();
                    path = path.replace("\\", File.separator);
                    System.out.println("Save as file: " + path);

    }
    }

1 个答案:

答案 0 :(得分:3)

我看到了一些问题。其中一个,你在这里显示的代码都没有显示对任何&#34; .Save()&#34;的调用。或选择目录后复制或移动方法。二,File对象指向目录,而不是文件名。三,你的初始Writer对象可能是将test.txt写入你的.class或.jar文件运行的目录。

在开始写入磁盘之前,您需要确定要使用的目录和文件名。

更新

public void   SaveToFile() throws IOException {
    int userSelection = db.showSaveDialog(this);
    if (userSelection == JFileChooser.APPROVE_OPTION) {
        File fileToSave = db.getCurrentDirectory();
        String path = fileToSave.getAbsolutePath() + File.separator + "test.txt";

        try (Writer writer = new BufferedWriter(new OutputStreamWriter(
                  new FileOutputStream(path), "utf-8"))) {
            int i=0;
            //String Data[]=new String[10];
            while( i<10 ){
                writer.write("Student No :" + i);
                //Data[i]= "Student No :" + i; // Not sure why Data[] exists?
                ++i;
            }
        }

        System.out.println("Save as file: " + path);
    }
}

我认为这是您所需要的近似值。我目前没有java编译器,因此我无法确定这是否具有良好的语法。但是网上有很多Java教程。