Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 下载创建的csv文件_Java_Csv_Opencsv_Writer - Fatal编程技术网

Java 下载创建的csv文件

Java 下载创建的csv文件,java,csv,opencsv,writer,Java,Csv,Opencsv,Writer,我正在用opencsv库创建一个csv文件,但我有一些小困难。 我在网上学习了一个教程: private void exportProducts() { String OBJECT_LIST_SAMPLE = "C:/tmp/object-list-sample.csv"; try ( BufferedWriter writer = Files.newBufferedWriter(Paths.get(OBJECT_LIST_SAMPLE));

我正在用opencsv库创建一个csv文件,但我有一些小困难。 我在网上学习了一个教程:

private void exportProducts() {

    String OBJECT_LIST_SAMPLE = "C:/tmp/object-list-sample.csv";

     try (
             BufferedWriter  writer = Files.newBufferedWriter(Paths.get(OBJECT_LIST_SAMPLE));

                CSVWriter csvWriter = new CSVWriter(writer,
                        CSVWriter.DEFAULT_SEPARATOR,
                        CSVWriter.NO_QUOTE_CHARACTER,
                        CSVWriter.DEFAULT_ESCAPE_CHARACTER,
                        CSVWriter.DEFAULT_LINE_END);
            ) {
                String[] headerRecord = {"Name", "Email", "Phone", "Country"};
                csvWriter.writeNext(headerRecord);

                csvWriter.writeNext(new String[]{"Sundar Pichai ♥", "sundar.pichai@gmail.com", "+1-1111111111", "India"});
                csvWriter.writeNext(new String[]{"Satya Nadella", "satya.nadella@outlook.com", "+1-1111111112", "India"});

            } catch (IOException e) {
                LOG.error("", e);
            }

}
很好,文件创建正确,但我想扩展这个。我是说

  • 我不想使用OBJECT\u LIST\u示例,但我想创建一个临时文件(file.creteTempFile),用它来编写字符串
  • 最后,我想直接下载这个文件,供用户使用
  • 请帮帮我


    谢谢

    如何使用

    下面是一个简单的例子:

    public static void main(String[] args) throws Exception {
        Path p = Files.createTempFile("Test", ".tmp");
        try(
                BufferedWriter writer = Files.newBufferedWriter(p, StandardOpenOption.DELETE_ON_CLOSE)
                ){
            System.out.println(p);
            for(int i = 0; i < 26; ++i){
                writer.append((char)(i+'a'));
            }
    
        }
    }
    

    对于第二部分,没有足够的信息。

    然后根据您与用户的沟通方式创建一个文件,用文件内容回复请求,这也可以在google中找到。现在,您有了一个有效的解决方案和一些更新的想法,但还没有对其进行研究,请先检查
    File.createTempFiles
    返回的内容,然后再抱怨。第二部分,“基于你与用户的沟通方式”。。。因为我不知道,所以我没办法。嗨,我编辑了我的代码,添加了:File temp=File.createTempFile(“tempfile”,“.csv”);BufferedWriter writer=new BufferedWriter(new FileWriter(temp));但是现在tmp文件是空的。而且,我不知道如何用文件内容回复请求。我修改了我的代码,现在我这样做了:file temp=file.createTempFile(“tempfile”)和“.csv”);BufferedWriter writer=new BufferedWriter(new FileWriter(temp));但是tmp文件是empty@Gjord83我无法调试您的代码,我只能说这里提供的代码是一个有效的解决方案。我已经添加了在调用
    close
    方法时删除文件的选项(因此请注意您想做什么)。谢谢,如何下载这个创建的文件?我的意思是,我想,用户,自动下载file@Gjord83你一直在问,但我仍然不知道你的用户是如何用这种方法交流的……我使用的是vaadin 8,有一个按钮可以管理产品的出口。当他点击按钮时,有一个方法可以写入csv。当csv被写入时,我想打开询问“打开或保存”的对话框
    public static void main(String[] args) throws Exception {
        Path p = Files.createTempFile("Test", ".tmp");
        try(
                BufferedWriter writer = Files.newBufferedWriter(p, StandardOpenOption.DELETE_ON_CLOSE)
                ){
            System.out.println(p);
            for(int i = 0; i < 26; ++i){
                writer.append((char)(i+'a'));
            }
    
        }
    }
    
     abcdefghijklmnopqrstuvwxyz