精华内容
下载资源
问答
  • 在FOR循环体内,我生成一个变量...如果在源文件中定义1万个有规律的变量名如何实现? int i1 = 1; int i2= 1; int i3= 1; 。。。 如果可以先定义一万个同名的然后使用别的方式(快捷键)改成不同的也可以
  • 这篇文章主要介绍了Java实现批量...在action中定义变量private List downLoadPaths = new ArrayList();//存储选中文件的下载地址private OutputStream res;private ZipOutputStream zos;private String outPath;pr...

    这篇文章主要介绍了Java实现批量下载选中文件功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下1.在action中定义变量private List downLoadPaths = new ArrayList();//存储选中文件的下载地址

    private OutputStream res;

    private ZipOutputStream zos;

    private String outPath;

    private String lessionIdStr;// 选中文件ID拼接的字符串private String fileName; //浏览器下载弹出框中显示的文件名

    分别给出get和set方法

    2.  主方法

    /**   * 下载多个文件:压缩成zip

    *

    * @return

    * @throws Exception

    */

    public String downLoadLessionsZip() {

    downLoadPaths.clear();

    String firstFileName = "";// 第一个文件的文件名

    List<DownLoadFileVo> fileVos = new LinkedList<DownLoadFileVo>();

    if (StringUtils.isNotEmpty(lessionIdStr)) {

    int end = lessionIdStr.lastIndexOf(",");

    if (end > 0) {

    if (end == lessionIdStr.length() - 1) {

    lessionIdStr = lessionIdStr.substring(0, end);

    }

    String[] ids = lessionIdStr.split(",");

    for (int i = 0; i < ids.length; i++) {

    if (StringUtils.isNumeric(ids[i])) {

    BkPersonLession lession = bkPersonLessionService.downLoadLession(Integer.parseInt(ids[i]));

    if (lession != null) {

    fileVos.add(new DownLoadFileVo(lession

    .getLessionName(), getContextRealPath()

    + lession.getLessionSavePath()));

    downLoadPaths.add(getContextRealPath()

    + lession.getLessionSavePath());

    }

    if (i == 0) {

    firstFileName = lession.getLessionName();

    }

    }

    }

    }

    }

    // 有数据可以下载

    if (downLoadPaths.size() != 0) {

    // 进行预处理

    preProcess(firstFileName);

    } else {

    // 没有文件可以下载,返回nodata

    return "nodata";

    }

    // 处理

    writeZip(fileVos);

    // 后处理关闭流

    afterProcess();

    return null;

    }

    // 压缩处理

    public void writeZip(List<DownLoadFileVo> fileVos) {

    byte[] buf = new byte[8192];

    int len;

    for (DownLoadFileVo fileVo : fileVos) {

    File file = new File(fileVo.getFileSavePath());

    if (!file.isFile())

    continue;

    ZipEntry ze = new ZipEntry(fileVo.getFileName()

    + fileVo.getFileSavePath().substring(

    fileVo.getFileSavePath().lastIndexOf(".")));

    try {

    zos.putNextEntry(ze);

    BufferedInputStream bis = new BufferedInputStream(

    new FileInputStream(file));

    while ((len = bis.read(buf)) > 0) {

    zos.write(buf, 0, len);

    }

    bis.close();

    zos.closeEntry();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    // 预处理

    public void preProcess(String firseFileName) {

    String zipName = "【批量下载】" + firseFileName + "等.zip";

    String filename = "";

    try {

    filename = new String(zipName.getBytes("GBK"), "8859_1");

    } catch (UnsupportedEncodingException e1) {

    e1.printStackTrace();

    }

    this.fileName = filename;

    HttpServletResponse response = ServletActionContext.getResponse();

    try {

    res = response.getOutputStream();

    // 清空输出流(在迅雷下载不会出现一长窜)

    response.reset();

    // 设定输出文件头

    response.setHeader("Content-Disposition", "attachment;fileName="

    + filename);

    response.setContentType("application/zip");

    zos = new ZipOutputStream(res);

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    // 后处理

    public void afterProcess() {

    try {

    if (zos != null) {

    zos.close();

    }

    if (res != null) {

    res.close();

    }

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    3. 在struts.xml中配置

    method="downLoadLessionsZip">//class值为bean.xml中配置的bean

    204//表示响应执行成功,但没有数据返回,浏览器不用刷新,不用导向新页面

    总结

    以上所述是小编给大家介绍的Java实现批量下载选中文件功能,希望对大家有所帮助,如果大家有任何疑问请给我留言

    详细的代码及配置信息可以参考我写的这篇文章:http://blog.ncmem.com/wordpress/2019/08/28/java%e6%89%b9%e9%87%8f%e4%b8%8b%e8%bd%bd/

    展开全文
  • 1.在action中定义变量private List downLoadPaths = new ArrayList();//存储选中文件的下载地址private OutputStream res;private ZipOutputStream zos;private String outPath;private String lessionIdStr;// 选中...

    1.在action中定义变量

    private List downLoadPaths = new ArrayList();//存储选中文件的下载地址

    private OutputStream res;

    private ZipOutputStream zos;

    private String outPath;

    private String lessionIdStr;// 选中文件ID拼接的字符串

    private String fileName; //浏览器下载弹出框中显示的文件名

    分别给出get和set方法

    2.  主方法

    /**

    * 下载多个文件:压缩成zip

    *

    * @return

    * @throws Exception

    */

    public String downLoadLessionsZip() {

    downLoadPaths.clear();

    String firstFileName = "";// 第一个文件的文件名

    List fileVos = new LinkedList();

    if (StringUtils.isNotEmpty(lessionIdStr)) {

    int end = lessionIdStr.lastIndexOf(",");

    if (end > 0) {

    if (end == lessionIdStr.length() - 1) {

    lessionIdStr = lessionIdStr.substring(0, end);

    }

    String[] ids = lessionIdStr.split(",");

    for (int i = 0; i < ids.length; i++) {

    if (StringUtils.isNumeric(ids[i])) {

    BkPersonLession lession = bkPersonLessionService.downLoadLession(Integer.parseInt(ids[i]));

    if (lession != null) {

    fileVos.add(new DownLoadFileVo(lession

    .getLessionName(), getContextRealPath()

    + lession.getLessionSavePath()));

    downLoadPaths.add(getContextRealPath()

    + lession.getLessionSavePath());

    }

    if (i == 0) {

    firstFileName = lession.getLessionName();

    }

    }

    }

    }

    }

    // 有数据可以下载

    if (downLoadPaths.size() != 0) {

    // 进行预处理

    preProcess(firstFileName);

    } else {

    // 没有文件可以下载,返回nodata

    return "nodata";

    }

    // 处理

    writeZip(fileVos);

    // 后处理关闭流

    afterProcess();

    return null;

    }

    // 压缩处理

    public void writeZip(List fileVos) {

    byte[] buf = new byte[8192];

    int len;

    for (DownLoadFileVo fileVo : fileVos) {

    File file = new File(fileVo.getFileSavePath());

    if (!file.isFile())

    continue;

    ZipEntry ze = new ZipEntry(fileVo.getFileName()

    + fileVo.getFileSavePath().substring(

    fileVo.getFileSavePath().lastIndexOf(".")));

    try {

    zos.putNextEntry(ze);

    BufferedInputStream bis = new BufferedInputStream(

    new FileInputStream(file));

    while ((len = bis.read(buf)) > 0) {

    zos.write(buf, 0, len);

    }

    bis.close();

    zos.closeEntry();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    // 预处理

    public void preProcess(String firseFileName) {

    String zipName = "【批量下载】" + firseFileName + "等.zip";

    String filename = "";

    try {

    filename = new String(zipName.getBytes("GBK"), "8859_1");

    } catch (UnsupportedEncodingException e1) {

    e1.printStackTrace();

    }

    this.fileName = filename;

    HttpServletResponse response = ServletActionContext.getResponse();

    try {

    res = response.getOutputStream();

    // 清空输出流(在迅雷下载不会出现一长窜)

    response.reset();

    // 设定输出文件头

    response.setHeader("Content-Disposition", "attachment;fileName="

    + filename);

    response.setContentType("application/zip");

    zos = new ZipOutputStream(res);

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    // 后处理

    public void afterProcess() {

    try {

    if (zos != null) {

    zos.close();

    }

    if (res != null) {

    res.close();

    }

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    3. 在struts.xml中配置

    method="downLoadLessionsZip">//class值为bean.xml中配置的bean

    204//表示响应执行成功,但没有数据返回,浏览器不用刷新,不用导向新页面

    总结

    以上所述是小编给大家介绍的Java实现批量下载选中文件功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    展开全文
  • Java实现批量下载选中文件功能发布于 2020-3-28|复制链接摘记: 1.在action中定义变量```javaprivate List downLoadPaths = new ArrayList();//存储选中文件的下载地址private OutputStream res;private ...

    Java实现批量下载选中文件功能

    发布于 2020-3-28|

    复制链接

    摘记: 1.在action中定义变量

    ```java

    private List downLoadPaths = new ArrayList();//存储选中文件的下载地址

    private OutputStream res;

    private ZipOutputStream zos ..

    1.在action中定义变量

    ```java

    private List downLoadPaths = new ArrayList();//存储选中文件的下载地址

    private OutputStream res;

    private ZipOutputStream zos;

    private String outPath;

    private String lessionIdStr;// 选中文件ID拼接的字符串

    private String fileName; //浏览器下载弹出框中显示的文件名

    ```

    分别给出get和set方法2.  主方法

    ```java

    /**

    * 下载多个文件:压缩成zip

    *

    * @return

    * @throws Exception

    */

    public String downLoadLessionsZip() {

    downLoadPaths.clear();

    String firstFileName = "";// 第一个文件的文件名

    List fileVos = new LinkedList();

    if (StringUtils.isNotEmpty(lessionIdStr)) {

    int end = lessionIdStr.lastIndexOf(",");

    if (end > 0) {

    if (end == lessionIdStr.length() - 1) {

    lessionIdStr = lessionIdStr.substring(0, end);

    }

    String[] ids = lessionIdStr.split(",");

    for (int i = 0; i fileVos) {

    byte[] buf = new byte[8192];

    int len;

    for (DownLoadFileVo fileVo : fileVos) {

    File file = new File(fileVo.getFileSavePath());

    if (!file.isFile())

    continue;

    ZipEntry ze = new ZipEntry(fileVo.getFileName()

    + fileVo.getFileSavePath().substring(

    fileVo.getFileSavePath().lastIndexOf(".")));

    try {

    zos.putNextEntry(ze);

    BufferedInputStream bis = new BufferedInputStream(

    new FileInputStream(file));

    while ((len = bis.read(buf)) > 0) {

    zos.write(buf, 0, len);

    }

    bis.close();

    zos.closeEntry();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    // 预处理

    public void preProcess(String firseFileName) {

    String zipName = "【批量下载】" + firseFileName + "等.zip";

    String filename = "";

    try {

    filename = new String(zipName.getBytes("GBK"), "8859_1");

    } catch (UnsupportedEncodingException e1) {

    e1.printStackTrace();

    }

    this.fileName = filename;

    HttpServletResponse response = ServletActionContext.getResponse();

    try {

    res = response.getOutputStream();

    // 清空输出流(在迅雷下载不会出现一长窜)

    response.reset();

    // 设定输出文件头

    response.setHeader("Content-Disposition", "attachment;fileName="

    + filename);

    response.setContentType("application/zip");

    zos = new ZipOutputStream(res);

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    // 后处理

    public void afterProcess() {

    try {

    if (zos != null) {

    zos.close();

    }

    if (res != null) {

    res.close();

    }

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    ```

    3. 在struts.xml中配置

    ```java

    //class值为bean.xml中配置的bean

    204//表示响应执行成功,但没有数据返回,浏览器不用刷新,不用导向新页面

    ```

    展开全文
  • java+文件批量下载

    2019-08-29 12:10:57
    这篇文章主要介绍了Java实现批量下载...1.在action中定义变量 private List<String> downLoadPaths = new ArrayList<String>();//存储选中文件的下载地址 private OutputStream res; private Zi...
    这篇文章主要介绍了Java实现批量下载选中文件功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    1.在action中定义变量
    
     private List<String> downLoadPaths = new ArrayList<String>();//存储选中文件的下载地址 
     private OutputStream res; 
     private ZipOutputStream zos; 
     private String outPath; 
     private String lessionIdStr;// 选中文件ID拼接的字符串 
     private String fileName; //浏览器下载弹出框中显示的文件名 

     

    分别给出get和set方法

    2.  主方法 

    /** 

       * 下载多个文件:压缩成zip 
       * 
       * @return 
       * @throws Exception 
       */ 
      public String downLoadLessionsZip() { 
        downLoadPaths.clear(); 
        String firstFileName = "";// 第一个文件的文件名 
        List&lt;DownLoadFileVo&gt; fileVos = new LinkedList&lt;DownLoadFileVo&gt;(); 
        if (StringUtils.isNotEmpty(lessionIdStr)) { 
          int end = lessionIdStr.lastIndexOf(","); 
          if (end &gt; 0) { 
            if (end == lessionIdStr.length() - 1) { 
              lessionIdStr = lessionIdStr.substring(0, end); 
            } 
            String[] ids = lessionIdStr.split(","); 
            for (int i = 0; i &lt; ids.length; i++) { 
              if (StringUtils.isNumeric(ids[i])) { 
                BkPersonLession lession = bkPersonLessionService.downLoadLession(Integer.parseInt(ids[i])); 
                if (lession != null) { 
                  fileVos.add(new DownLoadFileVo(lession 
                      .getLessionName(), getContextRealPath() 
                      + lession.getLessionSavePath())); 
                  downLoadPaths.add(getContextRealPath() 
                      + lession.getLessionSavePath()); 
                } 
                if (i == 0) {               
                           firstFileName = lession.getLessionName(); 
                } 
              } 
            } 
          } 
        } 
        // 有数据可以下载 
        if (downLoadPaths.size() != 0) { 
          // 进行预处理 
          preProcess(firstFileName); 
        } else { 
          // 没有文件可以下载,返回nodata 
          return "nodata"; 
        } 
        // 处理 
        writeZip(fileVos); 
        // 后处理关闭流 
        afterProcess(); 
        return null; 
      } 
      // 压缩处理 
      public void writeZip(List&lt;DownLoadFileVo&gt; fileVos) { 
        byte[] buf = new byte[8192]; 
        int len; 
        for (DownLoadFileVo fileVo : fileVos) { 
          File file = new File(fileVo.getFileSavePath()); 
          if (!file.isFile()) 
            continue; 
          ZipEntry ze = new ZipEntry(fileVo.getFileName() 
              + fileVo.getFileSavePath().substring( 
                  fileVo.getFileSavePath().lastIndexOf(".")));                           
          try { 
            zos.putNextEntry(ze); 
            BufferedInputStream bis = new BufferedInputStream( 
                new FileInputStream(file)); 
            while ((len = bis.read(buf)) &gt; 0) { 
              zos.write(buf, 0, len); 
            } 
            bis.close(); 
            zos.closeEntry(); 
          } catch (IOException e) { 
            e.printStackTrace(); 
          } 
        } 
      } 
      // 预处理 
      public void preProcess(String firseFileName) { 
        String zipName = "【批量下载】" + firseFileName + "等.zip"; 
        String filename = ""; 
        try { 
          filename = new String(zipName.getBytes("GBK"), "8859_1"); 
        } catch (UnsupportedEncodingException e1) { 
          e1.printStackTrace(); 
        } 
        this.fileName = filename; 
        HttpServletResponse response = ServletActionContext.getResponse(); 
        try { 
          res = response.getOutputStream(); 
          // 清空输出流(在迅雷下载不会出现一长窜) 
          response.reset(); 
          // 设定输出文件头 
          response.setHeader("Content-Disposition", "attachment;fileName=" 
              + filename); 
          response.setContentType("application/zip"); 
          zos = new ZipOutputStream(res); 
        } catch (IOException e) { 
          e.printStackTrace(); 
        } 
      } 
      // 后处理 
      public void afterProcess() { 
        try { 
          if (zos != null) { 
            zos.close(); 
          } 
          if (res != null) { 
            res.close(); 
          } 
        } catch (IOException e) { 
          e.printStackTrace(); 
        } 

      } 

    3. 在struts.xml中配置

    <action name="downLoadBkPersonLessionsZip" class="bkPersonLessionAction"  
          method="downLoadLessionsZip">//class值为bean.xml中配置的bean 
      <result name="nodata" type="httpheader"> 
        <param name="status">204</param>//表示响应执行成功,但没有数据返回,浏览器不用刷新,不用导向新页面 
      </result> 
    </action> 

    总结

    以上所述是小编给大家介绍的Java实现批量下载选中文件功能,希望对大家有所帮助,如果大家有任何疑问请给我留言

     详细的代码及配置信息可以参考我写的这篇文章:

    http://blog.ncmem.com/wordpress/2019/08/28/java%e6%89%b9%e9%87%8f%e4%b8%8b%e8%bd%bd/

     

    展开全文
  • java实现批量下载选中文件

    千次阅读 2015-08-10 10:49:29
    1.在action中定义变量  private List downLoadPaths = new ArrayList();//存储选中文件的下载地址  private OutputStream res;  private ZipOutputStream zos;  private String outPath;  private String ...
  • 图片上传和文件上传本质上是一样的,图片本身也是文件。...为了能保证文件能上传成功file控件的name属性值要和你提交的控制层变量名一致,例如空间名是file那么你要在后台这样定义private Filefile; //fi...
  • Java数组的定义和使用

    2020-10-20 23:14:52
    数组本质上就是让我们能够“批量”创建相同类型的变量,必须是相同类型。 创建数组 基本语法 //动态初始化 数据类型[] 数组名称 = new 数据类型[] { 初始化数据 }; //静态初始化 数据类型[] 数组名称 = { 初始化...
  • Dom探索之基础详解认识DOM DOM级别 注::DOM 0级标准实际并不存在,只是历史坐标系的...数组基本定义:相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的...
  • 数组本质上就是批量创建相同类型且内存连续的变量 数组的创建 基本语法: 数据类型 [ ] 数组名称 = new 数据类型 [] { 初始化数据 }; //动态初始化 数据类型 [ ] 数组名称 = { 初始化数据 }; //静态初始化 数据类型 ...
  • 数组的本质上,就是让我们能“批量”创建相同类型的变量。即:相同类型的集合。 注意:在Java中,数组中包含的变量必须是相同类型。 2、数组的定义 2.1创建数组: //动态初始化 数据类型[ ] 数组名称 = new 数据类
  • Java数组的定义与使用

    2020-12-21 16:37:47
    数组的本质是让我们能“批量”创建相同类型的变量。 1.2创建数组 基本语法: //动态初始化 数据类型[] 数组名称=new 数据类型[]{初始化数据}; int[] arr=new int[]{1,2,3} //静态初始化 数据类型[] 数组名={初始化...
  • foreach方式这种方式实际是对SQL语句进行拼接,生成一个长长的SQL,对很多变量进行绑定。如果数据量不大(1000个以内),可以用这种方式。如果数据量太大,可能数据库会报错。定义接口public interface StudentMapper...
  • JAVA学习日记(3)——数组的定义和使用 1.数组的基本用法 1.1 什么是数组 数组本质上就是让我们能"批量"创建相同类型的变量 例如: 如果需要表示两个数据,那么直接创建两个变量即可 int a,int b 如果需要表示五个...
  • Java基础语法(六)——数组的定义与使用

    千次阅读 多人点赞 2021-04-17 12:50:24
    文章目录Java基础语法(六)——数组的定义与使用一、 数组基本用法1.什么是数组2. 创建数组3.定义数组的方式4. 数组的使用(1)获取长度(2)访问...数组本质上就是让我们能 “批量” 创建相同类型的变量. 例如: 如果需
  • 数组本质上就是能“批量”的创建相同类型的变量(注意数组中包含的变量一定是相同类型的)。 2.数组的创建 数组的创建并初始化有三种方式: 1.基本语法:变量类型[] + 数组名称 = new 变量类型[]{元素1,元素2,元素3};...
  • 数组的本质上是“批量”创建相同类型的变量。 比如说如果需要创建一个变量,即可以直接int a,若需要两个变量,则可以int a,int b,若需要成百上千相同类型的变量,需要我们一个一个去创建吗?不需要,我们引入数组...
  • 数组本质上就是让我们能 “批量” 创建相同类型的变量. 例如: 如果需要表示两个数据, 那么直接创建两个变量即可 int a; int b 如果需要表示五个数据, 那么可以创建五个变量 int a1; int a2; int a3; int a4; int a5...
  • 数组本质上就是让我们能 “批量” 创建相同类型的变量 例如: 如果需要表示两个数据, 那么直接创建两个变量即可 int a; int b 如果需要表示五个数据, 那么可以创建五个变量 int a1; int a2; int a3; int a4; int a5; ...
  • 数组本质上就是让程序员能够批量创建一组相同类型的变量。 创建数组 //动态初始化 数据类型[] 数组名称 = new 数据类型[] {初始化数据}; //静态初始化 数据类型[] 数组名称 = {初始化数据}; 代码实例 int[]...
  • 数组本质上就是让我们能 “批量” 创建相同类型的变量,需要注意的是在 Java 中, 数组中包含的变量必须是 相同类型。 2 、创建数组 基本语法: // 动态初始化 数据类型[] 数组名称 = new 数据类型 [长度] { 初始化...
  • shell 是linux 系统中非常强大的工具,用来处理很多重复性工作。比如批量部署机器,安装系统...1.变量分为系统变量,用户变量和环境变量。在命令行提示符直接执行 env、set 查看系统或环境变量。env 显示用户环境变...
  • Java数组

    2020-10-06 14:38:57
    本质上就是能 “批量” 创建相同类型的变量(在Java中,数组中包含的变量必须是相同类型)。 数组的定义: 数据类型[] 数组变量名 = new 数据类型[整数]; //整数:数组的长度 数据类型[] 数组变量名 = {值1,值2,值3...
  • 浅谈Java数组

    2019-10-20 17:20:31
    其本质上就是让我们能批量创建相同类型的变量。数组在内存中是连续存放的。 eg:如果需要表示两个数据,那么直接创建两个变量即可 int a ;int b 。 如果需要表示一万个数据,那么就不能创建一万个变量了,此时就...
  • java----数组

    2018-09-11 10:17:12
    只使用原有的一一定义变量的方法的话,如果数量少还可以实现,但是数量很大,那么代码的光定义变量部分就非常巨大。所以数组就出现了,可以理解为批量的定义了大量的变量。  定义数组的格式:  格式1:数据类型[]...
  • 前言 在一些复杂的Linux维护工作中,大量重复性的输入和交互操作不但费时费力,...强语言:定义变量时需要声明数据类型:如Java,C语言等 int age=10 强语言,静态语言, 整型:int ,如1 ,2 ,3, ,100,等 长整型:Lo
  • Java 数组总结

    2019-10-20 17:18:38
    数组是“批量”创建**相同类型**的变量; 1.2创建数组 // 动态初始化 数据类型[] 数组名称 = new 数据类型 {初始化数据} // 静态初始化 数据类型[] 数组名称 = { 初始化数据 }; 代码示例: int[] arr = new int{...

空空如也

空空如也

1 2 3 4 5 6
收藏数 107
精华内容 42
关键字:

java批量定义变量

java 订阅