在JSP中的特定位置下载csv文件

时间:2014-08-20 13:33:33

标签: jsp csv

我正在以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();
        }
    }

2 个答案:

答案 0 :(得分:-2)

来自Java程序

您可以使用JFileChooser。见How to Use File Choosers

  

文件选择器提供用于导航文件系统的GUI,然后从列表中选择文件或目录,或输入文件或目录的名称。要显示文件选择器,通常使用JFileChooser API显示包含文件选择器的模式对话框。呈现文件选择器的另一种方法是将JFileChooser的实例添加到容器中。

JFileChooser是一个用于选择一个或多个文件的对话框。

三种方法的返回值是以下之一:

  • JFileChooser.CANCEL_OPTION,如果用户点击取消。
  • JFileChooser.APPROVE_OPTION,如果用户单击“确定/打开/保存”按钮。
  • JFileChooser.ERROR_OPTION,如果用户关闭对话框

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的远程文件访问和操作。特性:

  • 创建,复制,移动,重命名和删除文件和目录
  • 的快捷键
  • 查看文件(图片,电影,pdf,html,...)
  • Javascript文件名过滤器
  • 编辑文本文件
  • 将文件上传到服务器(状态通过上传监视器)
  • 从服务器下载文件
  • 将文件和文件夹组下载为即时创建的单个zip文件
  • 在服务器上执行本机命令(例如ls,tar,chmod,...)
  • 查看条目并解压缩服务器上的zip,jar,war和gz文件
  • 只需一个文件,非常容易安装(事实上,只需将其复制到服务器上)
  • 通过css文件自定义布局
  • 通过黑名单或白名单限制文件访问
  • 可更改为只读(有或没有上传)解决方案

答案 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();
            }
        }
    }