精华内容
下载资源
问答
  • 在操作过程中发现了一个问题,直接拷用官方文档的文件导出的文件的,在一番研究之下写出了后面的代码,实现了用easyExcel的导出。直接上干货 包引入 这里个贼有意思的事情,官方文档也是写的简介,简介到pom...

    背景

    今天遇到个要做导出的需求,很快就确定了技术方案用easyExcel,因为poi据说会有OOM问题,作为没有接触特别大型项目的我就不去深究这个问题了。在操作过程中发现了一个问题,直接拷用官方文档的文件导出的文件是空的,在一番研究之下写出了后面的代码,实现了用easyExcel的导出。直接上干货

    包引入

    这里说个贼有意思的事情,官方文档也是写的简介,简介到pom依赖都没有写。官方文档传送门:
    https://www.yuque.com/easyexcel/doc/write

    <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>easyexcel</artifactId>
                <version>2.2.9</version>
            </dependency>
    

    请求处理代码

    	@ApiOperation(value = "xxxx", notes = "xxxxxx")
        @GetMapping("/xxxx")
        @SneakyThrows
        public void exportProductInfo(@RequestBody @Valid QualifiedProductCommand command, HttpServletResponse response){
            command.getPagination().setPageSize(5000);
            ExportDTO exportDTO = finishedGoodsService.qualifiedProduct(command).getData();
            String fileName = System.currentTimeMillis() + ".xlsx";
            response.setContentType("application/vnd.ms-excel");
            response.setCharacterEncoding("utf8");
            response.setHeader("Content-disposition", "attachment;filename=" + fileName);
            response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
            WriteSheet writeSheet =new WriteSheet();
            writeSheet.setHead(exportDTO.getTitle());
            writeSheet.setSheetName("xxx");
            excelWriter.write(exportDTO.getContent(),writeSheet);
            // 千万别忘记finish 会帮忙关闭流
            excelWriter.finish();
        }
    

    此处对比官方文档的导出看:

    @Test
        public void dynamicHeadWrite() {
            String fileName = TestFileUtil.getPath() + "dynamicHeadWrite" + System.currentTimeMillis() + ".xlsx";
            EasyExcel.write(fileName)
                // 这里放入动态头
                .head(head()).sheet("模板")
                // 当然这里数据也可以用 List<List<String>> 去传入
                .doWrite(data());
        }
    

    当时看这官方代码有点蒙圈,也纳闷为啥流都没有处理还能导出呢。怀疑这是导出到磁盘文件的写法,没去测试过。用官方给出的方式导出文件是空的。加上**EasyExcel.write(response.getOutputStream())**后,便有流可以导出。

    如有问题,希望大家评论区留言多多指教!

    展开全文
  • 有日志文件 但日志文件内容为空SLF4J的全称是Simple Logging Facade for Java,即简单日志门面. SLF4J并不是具体的日志框架,而是作为一个简单门面服务于各类日志框架,如java.util.logg ...在进行javaIO写文件操作后...

    Java日志使用slf4j 配置log4j后&comma;有日志文件 但日志文件内容为空

    SLF4J的全称是Simple Logging Facade for Java,即简单日志门面. SLF4J并不是具体的日志框架,而是作为一个简单门面服务于各类日志框架,如java.util.logg ...

    在进行javaIO写文件操作后文件内容为空的情况

    writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:\\order.txt"))) ...

    PHP使用文件流下载文件方法(附:解决下载文件内容乱码问题)

    1.flush - 刷新输出缓冲 2.ob_clean - 清空(擦掉)输出缓冲区 此函数用来丢弃输出缓冲区中的内容. 此函数不会销毁输出缓冲区,而像 ob_end_clean() 函数会销毁输出缓冲 ...

    【文件下载】Java下载文件的几种方式

    [文件下载]Java下载文件的几种方式  摘自:https://www.cnblogs.com/sunny3096/p/8204291.html 1.以流的方式下载. public HttpServl ...

    java下载文件工具类

    java下载文件工具类 package com.skjd.util; import java.io.BufferedInputStream; import java.io.BufferedOutput ...

    java下载文件时文件名出现乱码的解决办法

    转: java下载文件时文件名出现乱码的解决办法 2018年01月12日 15:43:32 橙子橙 阅读数:6249   java下载文件时文件名出现乱码的解决办法: String userAgent ...

    Java 下载文件

    public @ResponseBody void exportExcel(HttpServletRequest request, HttpServletResponse response, Khxx ...

    Java解析文件内容

    本文主要实现对.chk文件的解析,将其内容读出来,存入到一个Map中,文件内容实例为: A0500220140828.CHK A05002 |34622511 |373532879 |3 识别分隔符| ...

    java swing文件内容检索工具

    Java相关技术 - 文件内容检索工具 拿到一个几百M甚至上G的project让你去学习 有时候你会想知道某个关键词是在哪个文件里 比如:spring MVC配置的@RequestMapping,你从 ...

    展开全文
  • 当前位置:我的异常网» Java Web开发»上传文件时总是为空,该如何解决上传文件时总是为空,该如何解决www.myexceptions.net网友分享于:2013-03-07浏览:30次上传文件时总是为空后台 java方法 请高手指点public ...

    当前位置:我的异常网» Java Web开发 » 上传文件时总是为空,该如何解决

    上传文件时总是为空,该如何解决

    www.myexceptions.net  网友分享于:2013-03-07  浏览:30次

    上传文件时总是为空

    后台 java方法 请高手指点

    public String codeToString(String str)

    {//处理中文字符串的函数

    String s=str;

    try

    {

    byte tempB[]=s.getBytes("utf-8");

    s=new String(tempB);

    return s;

    }

    catch(Exception e)

    {

    return s;

    }

    }

    public void upLoad() throws Exception{

    HttpServletRequest request = ServletActionContext.getRequest();

    System.out.println(request);

    //接收上传的文件内容的临时文件的文件名

    String tempFileName=new String("tempFileName1");

    //tempFile1对象指向这个临时文件

    File tempFile1=new File("D:/",tempFileName);

    //outputFile1文件输出流指向这个临时文件

    FileOutputStream outputFile1=new FileOutputStream(tempFile1);

    //得到客户端提交的所有数据

    InputStream fileSource1=request.getInputStream();

    //将得到的客户端的数据写入临时文件

    System.out.println(fileSource1);

    byte b[]=new byte[1000];

    int n;

    while((n=fileSource1.read(b))!=-1)

    outputFile1.write(b,0,n);

    //关闭输出流和输入流

    System.out.println(n);

    outputFile1.close();

    fileSource1.close();

    //randomFile1对象指向临时文件

    RandomAccessFile randomFile1=new RandomAccessFile(tempFile1,"r");

    //读取临时文件的第一行数据

    randomFile1.readLine();

    System.out.println(""+randomFile1.readLine());

    //读取临时文件的第二行数据,这行数据中包括了文件的路径和文件名

    String FilePath=randomFile1.readLine();

    //得到文件名

    System.out.println(FilePath);

    int position=FilePath.lastIndexOf('\\');

    String fileName=codeToString(FilePath.substring(position+1,FilePath.length()-1));

    //重新定位读取文件指针到文件头

    randomFile1.seek(0);

    //得到第4行回车符号的位置,这是上传的文件数据的开始位置

    long forthEnterPosition=0;

    int forth=1;

    while((n=randomFile1.readByte())!=-1&&(forth<=4))

    if(n=='\n')

    {

    forthEnterPosition=randomFile1.getFilePointer();

    forth++;

    }

    //生成上传文件的目录

    File FileUploadDir=new File("D:/temp","upload");

    FileUploadDir.mkdir();

    //saveFile1对象指向要保存的文件

    File saveFile1=new File("D:/temp",fileName);

    RandomAccessFile randomFile2=new RandomAccessFile(saveFile1,"rw");

    //找到上传的文件数据的结束位置,即倒数第4行

    randomFile1.seek(randomFile1.length());

    long endPosition=randomFile1.getFilePointer();

    int j=1;

    while((endPosition>=0)&&(j<=4))

    {

    endPosition--;

    randomFile1.seek(endPosition);

    if(randomFile1.readByte()=='\n')

    j++;

    }

    //从传的文件数据的开始位置到结束位置,把数据写入要保存的文件中

    randomFile1.seek(forthEnterPosition);

    long startPoint=randomFile1.getFilePointer();

    while(startPoint

    {

    randomFile2.write(randomFile1.readByte());

    startPoint=randomFile1.getFilePointer();

    }

    //关闭文件输入输出流

    randomFile2.close();

    randomFile1.close();

    tempFile1.delete();

    System.out.println("文件"+fileName+"已成功上传!
    ");

    }

    报的错误是

    -1

    null

    null

    2011-11-16 15:25:53 org.apache.catalina.core.StandardWrapperValve invoke

    严重: Servlet.service() for servlet default threw exception

    文章评论

    展开全文
  • BufferedInputStreambis=null;BufferedOutputStreambos=null;HttpURLConnectionconn=null;path=path.replaceAll("%20","");... } } } } 当下载中文文件名的文件时,程序报错,如图,所示出错的地方。 展开

    BufferedInputStreambis=null;BufferedOutputStreambos=null;HttpURLConnectionconn=null;path=path.replaceAll("%20","");try{URLurl=newURL(path);conn=(HttpURLConnection)url.ope...

    BufferedInputStream bis=null;

    BufferedOutputStream bos=null;

    HttpURLConnection conn=null;

    path=path.replaceAll("%20", " ");

    try {

    URL url=new URL(path);

    conn=(HttpURLConnection) url.openConnection();

    conn.setConnectTimeout(6000); //设置连接超时时间6s

    conn.connect();

    //response.reset();

    response.setContentType("application/x-msdownload;");

    response.addHeader("Content-Disposition","attachment;filename=\""+new String(fileName.getBytes("gb2312"),"iso8859-1")+"\"");

    response.setContentType("application/octet-stream");

    bis=new BufferedInputStream(conn.getInputStream());

    byte[] buffer = new byte[bis.available()];

    int len;

    bos = new BufferedOutputStream(response.getOutputStream());//new FileOutputStream(fileName);

    while((len = bis.read(buffer))!=-1){

    bos.write(buffer,0,len);

    }

    bos.flush();

    } catch (MalformedURLException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    } finally{ //关闭各类流

    if(conn!=null){

    conn.disconnect();

    }

    if(bis!=null){

    try {

    bis.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    if(bos!=null){

    try {

    bos.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    }

    当下载中文文件名的文件时,程序报错,如图,所示为出错的地方。

    展开

    展开全文
  • java中判断文件是否空白(例子)

    千次阅读 2021-02-27 09:56:52
    判断是否空白文件String path=request.getRealPath("/");out.println(path);FileReader fr=new FileReader(path +"\\AtEnd.txt");//建立FileReader对象,并实例化为fr//对FileReader类生成的对象...
  • java判断文件为空

    2021-02-12 12:50:06
    展开全部看了下代码,有2个逻辑错误判断文件62616964757a686964616fe58685e5aeb931333335316435是否为空,使用readLine方法,如果返回null,表示为空ready()表示文件是否准备完毕if(!br.ready()) ////////文件为空...
  • 01-15shell中如何判断一个变量是否为空l_nan365492014-07-14在shell中如何判断一个变量是否为空varyall188622018-01-23linux bash shell 判断目录是否为空的函数10km73722015-12-29shell 当前目录检测文件是否为空并...
  • Multipartfile 在文件上传时为空

    千次阅读 2021-02-02 20:05:44
    前段提交的请求正常进入控制器中,但是MultipartFile 为空,调试情况如下 前段代码如下 原因分析: 文件上传,请求已成功进入控制器,只是multipartFile没有被成功创建,既然如此,那么他又是如何根据信息...
  • 我正在尝试使用keytoolSSL连接创建密钥库。 首先,我尝试了以下命令I am trying to create keystore for SSL connection using keytool. First I tried the following command[aniket@localhost bin]$ keytool -...
  • C++判断文件是否为空

    2021-07-03 21:47:00
    C++文件操作——判断文件是否为空 1、文件不存在 is_open() 用 is_open() 函数判断文件打开的路径是否正确,返回值bool类型: true:表示文件打开成功; false:表示文件打开失败。 通常用读文件操作 用 !is_...
  • .net core 后台开发好文件上传接口后,用httpclient测试上传文件是可以正常接收,说明后台接口是没有问题的,但是在postman里使用form-data表单选择文件提交后台总是获取不到IFormFile,即使在headers中加上...
  • 在postman测试过程中,遇到了文件上传流一直取值为空的问题。 经过检查发现代码中出错的地方在这一行,程序运行到这里出错。 发现是postman提交请求的配置问题。 选择body,设置KEY属性file,但是这个框里...
  • 例如:32313133353236313431303231363533e59b9ee7ad9431333433636231如果图片文件是JPEG图象的格式,那么WinRAR就不能很好的压缩,其压缩率只有一般仅93%,也就是1000K的图片,最多压缩930K的压缩文件,几乎...
  • 建立空文件,看上去没有意义,而在实际工作中仍然有实际的作用。比如作为驱动事件或标志文件,其实作为文件实体,文件本身已经在操作体统中体现了存在的意义,并且文件名和属性也包含有大量信息供应用逻辑使用。定义...
  • 数据文件是非常强大的方式使用不同的测试数据来测试我们的API,以检查它们是否在各种情况下都能正常运行。我们可以认为数据文件是“Collection Runner”中每个请求的参数。下面,我们通过一个例子来说明如何使用数据...
  • 在properties文件中在数据(取名test01.properties,该文件在src下建立) dbUrl=jdbc:mysql://localhost:3306/db_test username=root password=root dbName=com.mysql.jdbc.Driver 2.读取 properties配置文件在工具...
  • 为什么复制后文件夹u磁盘为

    千次阅读 2020-12-31 09:19:18
    本文收集并整理了有关为什么文件夹U盘在复制的相关问题,并使用内容导航来快速访问它.内容导航:Q1: 为什么文件夹复制到U盘您刚刚复制了一种快速搜索方法!Q2: 将文件复制到USB闪存驱动器. 文件夹为. ...
  • 1、首先打开我的电脑,在菜单栏中选择"工具"中的“文件夹选项”,然后选择“文件夹选项”中的“查看”一栏,在下面高级设置中,找到“隐藏文件和文件夹”,选择“显示隐藏的文件、文件夹…”,再点击“确定”即可,...
  • 向FTP服务器写入文件文件创建成功,写入内容为空
  • u盘文件为空?相信不少用户在使用u盘的时候都遇到过这样的问题,u盘文件夹空白了,但查看属性却发现文件仍然占用着空间,一般出现这样的问题是因为u盘中了病毒,病毒将文件隐藏了,下面就来看看解决方法吧。 首先...
  • 我在Linux上有一个250GB的压缩文件,我想将它拆分250个1GB文件,并在运行压缩生成的部分文件(只要一个文件被生成,它应该被压缩)。 我试图用这个 -将一个.gz文件拆分多个1GB压缩(.gz)文件zcat file.gz | split...
  • shell 判断文件/目录是否为空

    千次阅读 2021-05-09 01:50:21
    #判断文件目录是否为空第一种:emptydir.sh-----------------------------------------------------------#!/bin/shDIRECTORY=$1if [ "`ls -A $DIRECTORY`" = "" ]; thenecho "$DIRECTORY is indeed empty"elseecho ...
  • 下面我们就来看看Mac打开隔投送并传送文件的技巧,需要的朋友快来参考操作吧! 一、打开隔投送的方法 1、打开mac主桌面,点击顶端前往。 2、在弹出的菜单栏,点击隔投送(当然也可以把隔投送添加到菜单...
  • 概述 搜索的时候发现有些文件电脑里有,但就是搜不到。 解决步骤 强制 Everything 重建数据库: 在 Everything 中,打开工具菜单,点击选项。 点击索引页面。 点击强制重建。 点击确定。
  • 默认文件传输类型ASCII_FILE_TYPE ,如果是普通文件上传下载就选BINARY_FILE_TYPE。 ASCII_FILE_TYPE会更改文本内容,更改回车、空格以适应不同的操作系统,而BINARY_FILE_TYPE不会操作文本,所以推荐。 ASCII_...
  • 场景问题:批量执行接口,全部勾选了,...查看单个接口执行,就能通过,批量,需要上传文件的接口就报错文件为空,导致批量执行失败的解决方案 按如下图方法进行设置,将所需的文件放下如下目录中 TypeError: Ca
  • 如何确定文件是否PDF文件

    千次阅读 2021-03-14 17:38:43
    我是用光盘的MimeExtractor(http://aperture.sourceforge.net/)做的,或者我前几天看到了一个库(http://sourceforge.net/projects/mime-util)我使用光圈从各种文件中提取文本,不仅仅是pdf,而且必须调整pd...
  • 基于axios封装之后的上传文件,传参为空 最近做项目,发现了一个问题。封装axios的请求和返回拦截之后,上传文件的上传参数莫名其妙为空对象了。本人是菜鸟只能用不进行封装的axios进行上传文件 封装的 export ...
  • 文件为空时,依旧执行读取语句 ② 读取文件内容,最后一个内容会被重复读取 代码问题&解决方案 问题发现 对于①,很多时候会因为文件为空而导致程序错误,代码写的好好的理论上没问题怎么就错了呢? 下面是...
  • c语言 文件

    千次阅读 2021-05-24 04:05:29
    1.格式化的输入和输出printf 格式化字符串 %[flags][width][.prec][hlL]typeflags:- : 左对齐+ : 前面带正负号0 : 0填充space: 正数留width:number : 最小字符数* : 下一个参数是字符数 //例如 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,996,075
精华内容 798,430
关键字:

为什么发送文件时说文件为空