Java 写入文件并通过 fileChooser 保存
Java write to file and save it by 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);
}
}
我发现这有几个问题。第一,您在此处显示的代码 none 显示了在选择目录后对任何“.Save()”或复制或移动方法的调用。第二,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 教程。
我是 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);
}
}
我发现这有几个问题。第一,您在此处显示的代码 none 显示了在选择目录后对任何“.Save()”或复制或移动方法的调用。第二,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 教程。