java下载代码,JAVA下载

本文目录一览:

下载的java源代码怎么打开

.class文件是java编译后的文件,它不是源代码,真正的java源代码是.java文件。

java源代码是txt格式的.java文件,用记事本就可以打开。

用eclipse打开java文件的方式是:

如果java文件是一个eclipse工程(根目录带有.project文件),用file/import/general/exist java project/(大概是)然后找到你的目录。

否则需要自己新建一个工程file/new/java project

然后把java文件拷贝到.src目录下。

.class文件是直接的编译好的文件,可以用jad把.class文件反编译成java文件,不过反编译的代码和原来的代码不一定完全一样。

java下载服务器上的文件到客户端

java编程方法下载服务器上的文件到本地客服端,代码如下:

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileOutputStream;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStream;

import java.net.URL;

import java.net.URLConnection;

 

public class DownLoad {   

 public static void downloadFile(URL theURL, String filePath) throws IOException {  

   File dirFile = new File(filePath);

      if(!dirFile.exists()){ 

        //文件路径不存在时,自动创建目录

        dirFile.mkdir();

      }

  //从服务器上获取图片并保存

     URLConnection connection = theURL.openConnection();

     InputStream in = connection.getInputStream();  

     FileOutputStream os = new FileOutputStream(filePath+”\\123.png”); 

     byte[] buffer = new byte[4 * 1024];  

     int read;  

     while ((read = in.read(buffer))  0) {  

        os.write(buffer, 0, read);  

          }  

       os.close();  

       in.close();

  }   

     public static void main(String[] args) { 

      //下面添加服务器的IP地址和端口,以及要下载的文件路径

      String urlPath = “http://服务器IP地址:端口/image/123.png”; 

      

      //下面代码是下载到本地的位置

      String filePath = “d:\\excel”; 

  

      URL url = new URL(urlPath); 

  

          try { 

  

             downloadFile(url,filePath); 

  

           } catch (IOException e) { 

  

            e.printStackTrace(); 

  

         } 

  

      }   

}

帮我看看这段java下载代码,文件名为中文时,报错,无法找到指定文件

代码一共6句,前4句没问题,运行下载是ok的,

最后一句有点不明白,为什么用BufferedInputStream?这个是读文件的,不知道你后面是如何写的,难道还要把文件读到内存?在向客户端发送出去??这样的话下载GB级文件内存溢出。

BufferedInputStream和BufferedOutputStream 用了之后,一定要flush(),这样也许会解决你的中文下载报错。

我直接用BufferedOutputStream 下载文件成功,前面是用你的,后面如下:

InputStream in = new FileInputStream(file);// 将文件装换成缓冲流

OutputStream out = response.getOutputStream(); // 获取response中得下载对象

BufferedOutputStream bufo = new BufferedOutputStream(out); // 对象转换成字符流

int length = 0; // 读取本地文时,记录本次文件读取内容大小

byte[] buffer = new byte[524288]; // 每次推送 512KB

while ((length = in.read(buffer)) != -1) // 读取本地文件,并在存放在buffer 数组

{

bufo.write(buffer, 0, length);// 预备向客户端推送

bufo.flush();// 清空缓存,并立即推送

}

in.close();

out.close();

bufo.close();

不建议写 response.setContentLength(int); 大并发时,这个容易出问题。

Java中文件下载该怎么写代码求高手指导

你的上传做了吗?

if (upfile.exists()) {

bytes = FileUtils.readFileToByteArray(upfile);

response.setContentType(“application/x-download”);

String agent = request.getHeader(“USER-AGENT”);//用户代理

// 防止中文文件名乱码

if (null != agent -1 != agent.indexOf(“MSIE”)) {

String codedfilename = StringUtils.replace(URLEncoder.encode(fileName, “UTF-8”), “+”, “%20”);

response.setHeader(“Content-Disposition”, “attachment;filename=” + codedfilename);

} else if (null != agent -1 != agent.indexOf(“Mozilla”)) {

String codedfilename = MimeUtility.encodeText(fileName, “UTF-8”, “B”);

response.setHeader(“Content-Disposition”, “attachment;filename=” + codedfilename);

} else {

response.setHeader(“Content-Disposition”, “attachment;filename=” + fileName);

}

response.setContentLength(bytes.length);

response.getOutputStream().write(bytes);

}

我有一段java http下载的代码,但是我很多地方读不懂,帮我谢谢注释

package API;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLDecoder;

import Get.Other_API.*;

public class DownFile implements Runnable

{

private String LOCAL_PATH=”d:/”;

private String Down_Path=null;

//下面两个是Down_Path的get和set的方法

public String getDown_Path() { return Down_Path;}

public void setDown_Path(String downPath) {Down_Path=downPath;}

public String getPath() { return LOCAL_PATH; }

public void setPath(String Path) {LOCAL_PATH=Path;}

public void DownNow()

{

//待下载文件地址

String fileUrl=getDown_Path();

InputStream in=null;

OutputStream out=null;

HttpURLConnection conn=null;

String fileName=null;

int count=0;

int finished=0;

int _temp=0;

try

{

//初始化连接

URL url=new URL(fileUrl);//将String类型的地址变为url对象

conn = (HttpURLConnection) url.openConnection();//开启连接

conn.setDoInput(true);//必要的,开启输入输出的设置

conn.setDoOutput(true);

//获取文件名

String disposition=conn.getHeaderField(“Content-Disposition”);

if(disposition!=null!””.equals(disposition))

{

//从头中获取文件名

fileName=disposition.split(“;”)[1].split(“=”)[1].replaceAll(“\””,””);

}

else

{

//从地址中获取文件名

fileName=fileUrl.substring(fileUrl.lastIndexOf(“/”)+1);

}

if(fileName!=null!””.equals(fileName))

{

//文件名解码

fileName=URLDecoder.decode(fileName, “utf-8”);

}

else

{

System.out.println(“Error”);

//如果无法获取文件名,则随机生成一个

//fileName=”file_”+(int)(Math.random()*10);

}

//读取数据

if(conn.getResponseCode()==HttpURLConnection.HTTP_OK)

{

//这种方法比较常用,得记住

byte[] buffer=new byte[2048];

in = conn.getInputStream();//获取文本的输入流

out=new FileOutputStream(new File(LOCAL_PATH,fileName));//确定输出的地方

int size=conn.getContentLength();

while((count=in.read(buffer))!=-1)//不断循环,每次读取2048比特的数据

{

if(count!=0)

{

out.write(buffer,0,count);//将count大小的数据写进去

finished+=count;//结尾的写入的位置改变,为下次写入做准备

if(_temp%500==0)

{

System.out.printf(“下载已完成—-%1$.2f%%\n”,(double)finished/size*100);//动态输出下载的进度

_temp=0;

}

_temp++;

}

else

{

break;

}

}

}

}

catch (MalformedURLException e)

{

e.printStackTrace();

}

catch (IOException e)

{

e.printStackTrace();

}

finally

{

try

{

out.close();//关闭输出流

in.close();//关闭输入流

conn.disconnect();//关闭连接,有打开就有关闭

}

catch (IOException e)

{

e.printStackTrace();

}

}

}

//因为该类实现了Runnable接口,所以得实现这个run方法

@Override

public void run() {

// TODO Auto-generated method stub

DownNow();//调用上面的DownNow方法

}

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/246451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:15
下一篇 2024-12-12 13:15

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Python基础代码用法介绍

    本文将从多个方面对Python基础代码进行解析和详细阐述,力求让读者深刻理解Python基础代码。通过本文的学习,相信大家对Python的学习和应用会更加轻松和高效。 一、变量和数…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29

发表回复

登录后才能评论