我是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);
}
}
答案 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教程。