日期:2014-05-20  浏览次数:20599 次

怎么存入内存?
现在我利用正则表达式,得到下载歌词的一系列地址
部分代码如下,从html中提取url能下载的
public void findLink(String html) {
  if (html.length() > 0) {
  ArrayList<String> link = new ArrayList();
  ArrayList<String> url = new ArrayList();
  Pattern pattern = Pattern.compile("href=\"?(.*?)(\"|>|\\s+)");
  Matcher matcher = pattern.matcher(html);
  while (matcher.find()) {
  link.add(matcher.group(1));
   
  }
  for(int i = 0;i<link.size();i++){
  if(link.get(i).startsWith("getfile.asp")){
  url.add(link.get(i));
  }
  }
  for(int j = 0; j< url.size();j++){
  System.out.println(url.get(j));
  }
  }
  }

输出是!getfile.asp?id=41770
getfile.asp?id=41030
getfile.asp?id=40486
getfile.asp?id=40343
getfile.asp?id=39988
getfile.asp?id=39736
getfile.asp?id=39134
getfile.asp?id=38511
getfile.asp?id=38494
getfile.asp?id=37397
都是下载的地址,我怎么一个一个存入内存,然后选择呢?我的意思就是和千千静听一样,下载的时候会出来很多歌词给人选择的!怎么实现这个效果呢?选择后在下载到本地,然后本地读取!


------解决方案--------------------
1、可以采用临时文件,这样不浪费内存
2、建立StringBuffer类或者String类数组,采用ArrayList存储
3、采用ByteArrayInputStream类