• 如何用JAVA的IO流下载落网音乐?


    一直以来都特别喜欢落网的音乐,最近用JAVA写了一个小程序,可以根据期刊和歌曲编号去下载音乐。本程序仅供学习使用。

    目前只写了一个初步的代码:

    public class DownloadMusic {
    	
    	private static int count = 1;
    
    	public static void main(String[] args) throws Exception {
    		
    		
    		while(count < 16){
    			String path = null;
    			if(count < 10){
    				path = "http://mp3-cdn2.luoo.net/low/luoo/radio957/0"+count+".mp3";
    			}else{
    				path = "http://mp3-cdn2.luoo.net/low/luoo/radio957/"+count+".mp3";
    			}
    			
    			
    			
    			//获取URL对象
    			URL url = new URL(path);
    			//根据URL打开链接
    			URLConnection connection = url.openConnection();
    			
    			//从连接处获取输入流对象
    			InputStream inputStream = connection.getInputStream();
    			
    			System.out.println("链接成功!");
    			
    			File file = new File("E:/mp3/957");
    			
    			if(!file.exists()){
    				file.mkdir();
    			}
    			
    			if(count < 10){
    				IOUtils.download("E:/mp3/957/0"+count+".mp3", inputStream);
    			}else{
    				IOUtils.download("E:/mp3/957/"+count+".mp3", inputStream);
    			}
    			
    			
    			count++;
    		}
    		
    		
    		
    	}
    }
    

    其中,专辑需要指定,然后固定下载15首音乐。

    再给出IOUtils的代码:

    import java.io.FileOutputStream;
    import java.io.InputStream;
    
    public class IOUtils {
    	
    	/**
    	 * 
    	 * @param path 需要下载的文件路径,包括后缀名
    	 * @param inStream 输入流
    	 */
    	public static void download(String path,InputStream inStream){
    		FileOutputStream fs;
    		try {
    			fs = new FileOutputStream(path);
    			byte[] buffer = new byte[1204];
    			
    	        int byteread = 0;
    	       
    	        while ((byteread = inStream.read(buffer)) != -1) {
    	          fs.write(buffer, 0, byteread);
    	        }
    	        System.out.println(path + "保存成功!");
    	        
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		
    	    
    		
    	}
    }
    

    感兴趣的朋友可以在这个代码上改进,使之功能更加全面。

    源码下载地址:http://java520.top/article/3457.html

  • 相关阅读:
    初识Redis
    一次kafka的offset回退事件及相关知识点
    接口透传
    看懂Oracle执行计划
    Oracle中merge into的使用
    动态规划算法:0/1背包问题 (0/1 Knapsack Problem)
    动态规划算法:硬币找零(Minimum Coin Change)
    链表:按照左右半区的方式重新组合单链表
    链表:删除链表中倒数第K个节点
    链表:合并两个有序链表
  • 原文地址:https://www.cnblogs.com/skyblue-li/p/8586151.html
Copyright © 2020-2023  润新知