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/zh-tw/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

發表回復

登錄後才能評論