`
metaphy
  • 浏览: 339054 次
  • 性别: Icon_minigender_1
  • 来自: 大西洋底
社区版块
存档分类
最新评论

从某网站下载MP3的例子

阅读更多
从某网站下载MP3的例子。为安全起见,将网站信息匿了。


package tools.download;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class DownloadMP3 {
	private static final String SITE = ...
	private static final String SAVE_PATH = ...
	private static int BUFFER_SIZE = 1024 * 8;

	public boolean downloadSrc(String strURL, String saveFile) {

		// strURL validation ....

		BufferedInputStream bis = null;
		FileOutputStream fos = null;
		byte[] buf = new byte[BUFFER_SIZE];

		try {
			File dir = new File(saveFile);
			
			if (!(dir.exists()) && !(dir.isDirectory())) {
				boolean created = dir.mkdirs();
				if (created) {
					System.out.println("创建文件夹成功!");
				} else {
					System.out.println("创建文件夹失败!");
				}
			}
			
			int lastIndex = strURL.lastIndexOf("/");
			saveFile = saveFile + strURL.substring(lastIndex + 1);

			URL url = new URL(strURL);
			URLConnection con = url.openConnection();
			long len = con.getContentLength();

			con.connect();
			bis = new BufferedInputStream(con.getInputStream());
			fos = new FileOutputStream(saveFile);

			int size = 0;
			int progress = 0;
			while ((size = bis.read(buf)) != -1) {
				// System.out.print("_");
				fos.write(buf, 0, size);
				progress++;
				System.out.print(".");
				if (progress % 80 == 0) {
					System.out.print("\n");
					progress = 0;
				}
			}
			fos.close();
			bis.close();

			File fsaved = new File(saveFile);
			long fileLen = fsaved.length();

			if (progress > 0)
				System.out.print("\n");
			System.out.println(len);
			System.out.println(fileLen);

			if (len == fileLen) {
				return true;
			} else {
				return false;
			}
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (fos != null) {
				try {
					fos.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if (bis != null) {
				try {
					bis.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

		return false;
	}

	/**
	 * Specific download
	 */
	public void downloadSite() {
		final int V = 34;

		final int MAX_TUNES = 20;
		
		int total = 0, failed = 0, success = 0; 

		for (int i = 1; i <= MAX_TUNES; i++) {
			String strURL = ...
			
			String saveFile = ...

			System.out.println(strURL);
			boolean successful = downloadSrc(strURL, saveFile);
			total ++;
			if (successful) {
				success++;
				System.out.println("Done - " + saveFile + "\n");
			} else {
				failed++;
				System.out.println("Failed.\n");
			}
		}
		System.out.println("Total: " + total + "; succeed: " + success + "; failed: " + failed);
	}

	public static void main(String[] args) {
		DownloadMP3 dlmp3 = new DownloadMP3();
		dlmp3.downloadSite();
	}
}


0
0
分享到:
评论

相关推荐

    C#.net_经典编程例子400个

    mid-wav文件 226 实例154 获取多媒体详细信息列表 227 5.2 MP3、WAV播放 228 实例155 带记忆功能的MP3播放器 228 实例156 自动播放的MP3播放器 231 实例157 学校体操定时音乐播放 233 ...

    自己编写的简单MP3播放器(VC)

    用VFW.h库中的MCI函数开发的简单mp3播放器工具,实现在顺序播放某个目录中所有mp3音乐文件功能,可以在播放列表中单击文件名选择播放文件,可以播放前一个、后一个音乐文件等功能。为想学习这方面编程的朋友提供一个...

    vc++ 开发实例源码包

    ---暂停并从 ----- -- - 上一曲------ 头开始播放 | 显示时间 | | | ---开始和暂停 ----------- 下一曲------ -------------------------------------- Linux内核完全注释附 如题,我没看。 MFC+消息循环贴图-...

    FF(人物制作工具)

    要先下载mugen的主程序,然后: MUGEN有六个文件夹,chars就是放人物的地方(支持文件夹),stages是游戏背景的地方可以自己放进去,font是游戏字体也就是A,B,C,D.... 1234567890和时间无限的字体,可以用工具改 ...

    embed标签的使用(在网页中播放各种音频视频的插件的使用)

    embed src="yin/01.mp3" _fcksavedurl=""yin/01.mp3"" _fcksavedurl=""yin/01.mp3"" type="application/x-mplayer3" loop="true" ShowStatusBar="true" ShowPositionControls="false" EnableContextMenu="false"&gt;...

    文件与打开程序创建关联-VB程序示例.rar

    定义与程序打开的文件,创建一种关联,双击文件,即可使用相关的程序打开文件,类似于安装完某程序后,自动将相关文件的打开程序定义为自己,就好比现在好多的播放器软件,安装后,会关联MP3文件、MPEG或RMVB等。...

    VB 抽奖程序 可设置每次抽奖显示数量与每个等级的抽奖次数

    参考了网上的例子,一并现行感谢! 2、背景图可以根据b2.jpg修改,替换此文件即可,修改背景图 3、抽奖时的背景音乐,可以替换n.mp3 4、一等奖默认抽一次,每次显示3个;二等奖默认抽2次,每次显示6个;三等奖默认抽...

    凫山抽奖软件

    第十一步:单独设置,指定某人中某个奖项。打开软件 按ctrl+tab 键 即可。 最多可设三个。(如图:抽奖10) 奖前面填写 要中的奖项 比如:优秀奖 。谁前面写..... 记得如果是按姓名方式抽取时 不要写电话哦! 调节...

    计算机网络安全讲座稿(标准版).docx

    一般我们下载时要注意下载文件的扩展名,音乐视频常见:mp3,wma,wav等,图片:jpg,gif,bmp等,特别要注意的扩展名是:exe,scr,rar,zip等,病毒很多都捆绑在里面。 例子:一个压缩文件捆绑纸牌游戏。 4、病毒 ...

    Storm.dll MPQ文件读取

    例子是新版mpqeditor,样例图和某人提供的火影图都能打开,能看到一堆没有文件名的文件,其中就有隐藏的mp3,改成mp3扩展名就能正常播放。这种方式应该没什么弊端(除了得不到正确文件名),如果和火龙结合,用上述...

    新版Android开发教程.rar

    � A ndroid 在设计初期就考虑了与现其有业务的融合,改变以往从计算机为主改成从手机使用为导向。新 生应用如:G oogle 地图及其衍生应用、 GMail 、 GTalk 等。 � GPS 卫星导航功能,手机照相, MP3 ,蓝芽等均...

    定时关机软件

    而运行程序,如你想上网下载某个时间下载东西就可以利用该功,选择相应的下载工具即可。 "取消选择"说明选择了该项后就不会有“关机”“重启”“注销”的功能。也就是说有些时候你只需要起提醒,或打开某一程序即可...

    网管教程 从入门到精通软件篇.txt

    网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...

    ARM 嵌入式LINUX 系统构建与驱动开发

    可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。 广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。 客观的讲,工作需求量上...

    VB编程资源大全(控件 其它1)

    Zcg_3DLabel.ZIP 一个3D标签控件(15KB) 38,easyftp.ZIP 一个FTP客户端控件,可以用来编写自己的FTP下载软件(43KB) 39,mp3play.EXE 一个可以播放MP3编码文件的控件,DEMO版(264KB) 40,mp3enc....

    VB编程资源大全(控件 其它2)

    Zcg_3DLabel.ZIP 一个3D标签控件(15KB) 38,easyftp.ZIP 一个FTP客户端控件,可以用来编写自己的FTP下载软件(43KB) 39,mp3play.EXE 一个可以播放MP3编码文件的控件,DEMO版(264KB) 40,mp3enc....

    VB编程资源大全(控件 其它3)

    Zcg_3DLabel.ZIP 一个3D标签控件(15KB) 38,easyftp.ZIP 一个FTP客户端控件,可以用来编写自己的FTP下载软件(43KB) 39,mp3play.EXE 一个可以播放MP3编码文件的控件,DEMO版(264KB) 40,mp3enc....

    HGE_系列教材(1-9)

    &lt;3&gt; 音频支持和音乐回放(music playback):支持WAV, MP3, MP2, MP1 an d OGG 音频文件格式(audio file formats),支持MO3, IT, XM, S3M, MTM, MO D and UMX 音乐文件格式(music file formats),支持压缩流的...

Global site tag (gtag.js) - Google Analytics