您的位置:

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方法

}

}