java代码实现,上传下载MP3 以及MP4 是怎么是现实的呢? Java文件下载怎么实现的

\u7528java\u5b9e\u73b0\u6587\u4ef6\u7684\u4e0a\u4f20\u4e0e\u4e0b\u8f7d

1.\u4e0b\u8f7d\u7b80\u5355\uff0c\u65e0\u975e\u662f\u628a\u670d\u52a1\u5668\u4e0a\u7684\u6587\u4ef6\u6216\u8005\u6570\u636e\u5e93\u4e2d\u7684BLob(\u6216\u5176\u4ed6\u4e8c\u8fdb\u5236\u578b)\uff0c\u7528\u6d41\u8bfb\u51fa\u6765\uff0c\u7136\u540e\u5199\u5230\u5ba2\u6237\u7aef\u5373\u53ef\uff0c\u8981\u6ce8\u610f ContentType\u3002

2.\u4e0a\u4f20\uff0c\u53ef\u4ee5\u7528Apache Commons Upload\u7b49\u5f00\u6e90\u5de5\u5177\uff0c\u6216\u8005\u81ea\u5df1\u5199\uff1a
form\u8981\u7528enctype="multipart/form-data"
\u7136\u540e\u670d\u52a1\u5668\u7aef\u4e5f\u662f\u7528IO\u628a\u5ba2\u6237\u7aef\u63d0\u4ea4\u7684\u6587\u4ef6\u6d41\u8bfb\u5165\uff0c\u7136\u540e\u5199\u5230\u670d\u52a1\u5668\u7684\u6587\u4ef6\u7cfb\u7edf\u6216\u8005\u6570\u636e\u5e93\u91cc\u3002\u4e0d\u540c\u7684\u6570\u636e\u5e93\u5bf9Lob\u5b57\u6bb5\u64cd\u4f5c\u53ef\u80fd\u6709\u6240\u4e0d\u540c\uff0c\u5efa\u8bae\u7528Hibernate,JPA\u7b49\u6210\u719f\u7684ORM\u6846\u67b6\uff0c\u53ef\u4ee5\u4e0d\u8003\u8651\u6570\u636e\u5e93\u7ec6\u8282\u3002

\u4e0b\u8f7d\u5c31\u5f88\u7b80\u5355\u4e86
\u628a\u4f60\u8981\u4e0b\u8f7d\u7684\u6587\u4ef6\u505a\u6210\u8d85\u7ea7\u94fe\u63a5\uff0c\u53ef\u4ee5\u4e0d\u7528\u4efb\u4f55\u7ec4\u4ef6
\u6bd4\u5982\u8bf4
\u4e0b\u8f7d\u4e00\u4e2aword\u6587\u6863
\u540d\u79f0.doc
\u8def\u5f84\u4f60\u81ea\u5df1\u5199
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.ProtocolException;
import java.net.URI;
import java.net.URL;
import java.util.Random;
/**
*
* \u5b9e\u73b0\u4e86\u4e0b\u8f7d\u7684\u529f\u80fd*/

public class SimpleTh {


public static void main(String[] args){
// TODO Auto-generated method stub
//String path = "http://www.7cd.cn/QingTengPics/\u5029\u5973\u5e7d\u9b42.mp3";//MP3\u4e0b\u8f7d\u7684\u5730\u5740
String path ="http://img.99luna.com/music/%CF%EB%C4%E3%BE%CD%D0%B4%D0%C5.mp3";

try {
new SimpleTh().download(path, 3); //\u5bf9\u8c61\u8c03\u7528\u4e0b\u8f7d\u7684\u65b9\u6cd5
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
public static String getFilename(String path){//\u83b7\u5f97\u6587\u4ef6\u7684\u540d\u5b57
return path.substring(path.lastIndexOf('/')+1);
}


public void download(String path,int threadsize) throws Exception//\u4e0b\u8f7d\u7684\u65b9\u6cd5
{//\u53c2\u6570 \u4e0b\u8f7d\u5730\u5740\uff0c\u7ebf\u7a0b\u6570\u91cf

URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();//\u83b7\u53d6HttpURLConnection\u5bf9\u8c61
conn.setRequestMethod("GET");//\u8bbe\u7f6e\u8bf7\u6c42\u683c\u5f0f\uff0c\u8fd9\u91cc\u662fGET\u683c\u5f0f
conn.setReadTimeout(5*1000);//
int filelength = conn.getContentLength();//\u83b7\u53d6\u8981\u4e0b\u8f7d\u6587\u4ef6\u7684\u957f\u5ea6
String filename = getFilename(path);
File saveFile = new File(filename);
RandomAccessFile accessFile = new RandomAccessFile(saveFile, "rwd");
accessFile.setLength(filelength);
accessFile.close();
int block = filelength%threadsize ==0?filelength/threadsize:filelength/threadsize+1;
for(int threadid = 0;threadid<=threadsize;threadid++){

new DownloadThread(url,saveFile,block,threadid).start();
}

}
private final class DownloadThread extends Thread{
private URL url;
private File saveFile;
private int block;//\u6bcf\u6761\u7ebf\u7a0b\u4e0b\u8f7d\u7684\u957f\u5ea6
private int threadid;//\u7ebf\u7a0bid

public DownloadThread(URL url,File saveFile,int block,int threadid){
this.url = url;
this.saveFile= saveFile;
this.block = block;
this.threadid = threadid;
}

@Override
public void run() {
//\u8ba1\u7b97\u5f00\u59cb\u4f4d\u7f6e\u7684\u516c\u5f0f\uff1a\u7ebf\u7a0bid*\u6bcf\u6761\u7ebf\u7a0b\u4e0b\u8f7d\u7684\u6570\u636e\u957f\u5ea6=\uff1f
//\u8ba1\u7b97\u7ed3\u675f\u4f4d\u7f6e\u7684\u516c\u5f0f\uff1a\uff08\u7ebf\u7a0bid+1\uff09*\u6bcf\u6761\u7ebf\u7a0b\u4e0b\u8f7d\u6570\u636e\u957f\u5ea6-1=\uff1f
int startposition = threadid*block;
int endposition = (threadid+1)*block-1;
try {
try {
RandomAccessFile accessFile = new RandomAccessFile(saveFile, "rwd");
accessFile.seek(startposition);//\u8bbe\u7f6e\u4ece\u4ec0\u4e48\u4f4d\u7f6e\u5199\u5165\u6570\u636e
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setReadTimeout(5*1000);
conn.setRequestProperty("Range","bytes= "+startposition+"-"+endposition);
InputStream inStream = conn.getInputStream();
byte[]buffer = new byte[1024];
int len = 0;
while((len = inStream.read(buffer))!=-1){
accessFile.write(buffer, 0, len);
}
inStream.close();
accessFile.close();
System.out.println("\u7ebf\u7a0bid\uff1a"+threadid+"\u4e0b\u8f7d\u5b8c\u6210");

} catch (FileNotFoundException e) {

e.printStackTrace();
}
} catch (IOException e) {

e.printStackTrace();
}

}

}
}

socket
将文件读成二进制流传送到服务器

IO流,file对象

  • Java缂栫▼濡備綍灏咥鏈嶅姟鍣ㄤ腑鐨勬枃浠跺彂閫佸埌B鏈嶅姟鍣ㄧ殑鎸囧畾鏂囦欢澶广傛ユユユ眰...
    绛旓細/** * 灏嗘枃浠涓婁紶鍒版湇鍔$锛屽苟鎺ユ敹鍏惰繑鍥炰俊鎭 * @param clientDefaultHttpClient * @param url鏈嶅姟鍣╱rl锛氬锛歨ttp://localhost:8080/test/upload.action * @param filePath鏂囦欢璺緞 * @param params涓婁紶鍙傛暟 * @param encode缂栫爜闆嗭紝涓昏鐢ㄦ潵瑙f瀽杩斿洖鐨剅esponse涓殑淇℃伅 * @re...
  • java mybatis
    绛旓細MyBatis 鐨勪富瑕佹濇兂鏄皢绋嬪簭涓殑澶ч噺 SQL 璇彞鍓ョ鍑烘潵锛屼娇鐢 XML 鏂囦欢鎴栨敞瑙g殑鏂瑰紡瀹炵幇 SQL 鐨勭伒娲婚厤缃紝灏 SQL 璇彞涓庣▼搴浠g爜鍒嗙锛屽湪涓嶄慨鏀圭▼搴忎唬鐮佺殑鎯呭喌涓嬶紝鐩存帴鍦ㄩ厤缃枃浠朵腑淇敼 SQL 璇彞銆侻yBatis 涓庡叾瀹冩寔涔呮ф鏋舵渶澶х殑涓嶅悓鏄紝MyBatis 寮鸿皟浣跨敤 SQL锛岃屽叾瀹冩鏋讹紙渚嬪 Hibernate锛夐氬父浣跨敤鑷...
  • JavaMail瀹炰緥
    绛旓細javaimport java.util.*;import javax.mail.*;import javax.mail.internet.*;import java.util.Date;import javax.activation.*;public class Mail { private MimeMessage mimeMsg; // MIME閭欢瀵硅薄 private Session session; // 閭欢浼氳瘽瀵硅薄 private Properties props; // 绯荤粺灞炴 // ...
  • java 涓婁紶鏂囦欢 闂
    绛旓細jsp鏂囦欢涓婁紶澶у閲囩敤閲囩敤寮婧愰」鐩潵绠鍖栧鐞,杩欓噷鍒楀嚭甯哥敤鐨勪袱涓猨ar鍖呯殑瀹炵幇,骞惰繘琛屾瘮杈,璇存槑浠栦滑鐨勪紭缂虹偣鍜屽簲璇ユ敞鎰忕殑闂銆 Commons FileUpload,鍙互鍦╤ttp://jakarta.apache.org/commons/fileupload/涓嬭浇,杩欎釜鍖呴渶瑕丆ommons IO鐨勬敮鎸,鍙互鍦╤ttp://jakarta.apache.org/commons/io/涓嬭浇 com.oreilly.servlet,鍙互鍦╤t...
  • 鎵嬫満甯哥敤杞欢瀹夎鏂规硶闆嗗悎
    绛旓細1)涓夋槦SGH-E908-JAVA瀹夎鏂规硶绗竴姝ヤ粠缃戜笂涓嬭浇MP鎵嬫満娴忚鍣ㄧ殑jar,jad瀹夎鏂囦欢銆傜浜屾鍚戞墜鏈轰紶閫佹父鎴廽ar,jad瀹夎鏂囦欢銆傚鐢ㄦ暟鎹嚎灏嗘墜鏈轰笌鐢佃剳杩炴帴,鍦ㄧ數鑴戠殑璧勬簮绠$悊鍣ㄤ腑鍑虹幇TF鍗$殑鐩樼,鎶婄數鑴戦噷鐨刯ar,jad鏂囦欢澶嶅埗鍒癟F鍗′腑銆傜涓夋瀹夎MP鎵嬫満娴忚鍣ㄣ傛柇寮鎵嬫満涓庣數鑴戠殑杩炴帴,浠庢墜鏈衡滄垜鐨勬敹钘忊濇壘鍒板苟鐐瑰嚮.jar鏂囦欢...
  • 姹java澹伴煶浠g爜,鍙互鎾璵p3鐨勮阿璋簡!
    绛旓細import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import javax.media.*;import javax.media.util.*;import javax.media.format.*;import javax.media.control.*;import javax.media.protocol.*;import javax.media.bean.playerbean.*;import javax.media.rtp.*;...
  • Java鏀跺彂閭欢杩囩▼涓叿浣撶殑鍔熻兘鏄庝箞瀹炵幇鐨
    绛旓細package cn.edu.dlmu.send;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import ...
  • java濡備綍璇诲彇MP3鏍煎紡鏂囦欢鐨勫唴瀹圭劧鍚庡鍏舵挱鏀惧疄渚浠g爜
    绛旓細鐩存帴涓嬩釜JMF锛実oogle鎼滐紝sun瀹樼綉涓婃湁~~鐒跺悗瀹夎鐩綍鏄綘鐨凧DK锛屽啀鎾斁MP3鏂囦欢灏憋細import javax.media.*;import java.net.MalformedURLException;import java.net.URL;Player player;File playFile=new File("");//浣犵殑MP3鏂囦欢 try { player=Manager.createRealizedPlayer(playFile.toURL());player....
  • java绋嬪簭缂栧啓鍙岃壊鐞浠g爜
    绛旓細public class Test1 {public static void main(String[] arg) {Test1 localTest1 = new Test1();// 鍙岃壊鐞 :绾㈣壊鐞冨彿鐮 + 钃濊壊鐞冨彿鐮// 鍏釜绾㈣壊鐞冨拰涓涓摑鑹茬悆鍙风爜// 绾㈣壊鐞冨彿鐮佷粠1~33涓夋嫨// 钃濊壊鐞冨彿鐮佷粠1~16涓夋嫨// 涓绛夊锛氫竷涓彿鐮佺浉绗︼紙鍏釜绾㈣壊鍙风爜鍜屼竴涓摑鑹茬悆鍙风爜锛(绾㈣壊鐞...
  • 鐢JAVA缂栫▼ 绫讳笌瀵硅薄鐨勫熀纭棰
    绛旓細System.out.println("鎴瀹炵幇浜嗗彲绉诲姩鎬");} }public class PhoneTest{ public static void main(String a[]){ Phone[] p=new Phone[5];Phone p1=new Phone();p1.setPhonenumber("123456789");p[0]=p1;Phone p2=new Phone();p2.setPhonenumber("987654321");p[1]=p2;Mobilephone mp=...
  • 扩展阅读:javascript免费网站 ... python基础代码大全 ... java编程代码大全免费 ... 免费代码生成器 ... java必背代码大全 ... java代码变成app软件 ... java指令大全 ... java文件上传下载代码 ... java入门网站 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网