我正在以csv格式访问数据库,但我给出了保存csv文件的手动路径。但是用户如何在其位置保存此文件。这是基于Web的应用程序。
代码: -
public void download() throws SQLException{
FileWriter writer;
try {
writer = new FileWriter("/home/auroin/Downloads/java_csv/xyu.csv",false);
pst = conn.createStatement();
ResultSet rs = pst.executeQuery( "SELECT * FROM Email_Test" );
while(rs.next()){
writer.append(rs.getString("Email_Id"));
writer.append(",");
}
writer.flush();
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
答案 0 :(得分:-2)
来自Java程序
您可以使用JFileChooser
。见How to Use File Choosers:
文件选择器提供用于导航文件系统的GUI,然后从列表中选择文件或目录,或输入文件或目录的名称。要显示文件选择器,通常使用JFileChooser API显示包含文件选择器的模式对话框。呈现文件选择器的另一种方法是将JFileChooser的实例添加到容器中。
JFileChooser是一个用于选择一个或多个文件的对话框。
三种方法的返回值是以下之一:
JFileChooser.APPROVE_OPTION的返回值表示您可以调用其getSelectedFile或getSelectedFiles方法:
public java.io.File getSelectedFile() // example: user wants to save to this file
public java.io.File[] getSelectedFiles()
有关示例,请参阅Java Tutorial » Swing » JFileChooser:
import javax.swing.JFileChooser;
import javax.swing.JFrame;
public class MainClass extends JFrame {
public MainClass() {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setDialogTitle("Choose a file");
this.getContentPane().add(fileChooser);
fileChooser.setVisible(true);
}
public static void main(String[] args) {
JFrame frame = new MainClass();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
来自JSP页面
要使用JSP页面中的文件选择器,请参阅Jsp File Browser:
此JSP程序允许基于Web的远程文件访问和操作。特性:
答案 1 :(得分:-2)
将文件保存到用户位置的完美方式: -
public void download() throws SQLException{
FileWriter writer;
final JFileChooser fc = new JFileChooser();
int returnVal = fc.showSaveDialog(fc); //parent component to JFileChooser
if (returnVal == JFileChooser.APPROVE_OPTION) { //OK button pressed by user
File file = fc.getSelectedFile(); //get File selected by user
try {
writer = new FileWriter(file+"data.csv",false);
pst = conn.createStatement();
ResultSet rs = pst.executeQuery( "SELECT * FROM Email_Test" );
while(rs.next()){
writer.append(rs.getString("Email_Id"));
writer.append(",");
}
writer.flush();
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}