展开全部

封面就是图片,62616964757a686964616fe59b9ee7ad9431333337616466用java的类抓取图片即可package tool;

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.BufferedReader;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.LinkedList;

import java.util.List;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextField;

import javax.swing.JTextPane;

import javax.swing.SwingUtilities;

import javax.swing.text.Style;

import javax.swing.text.StyleConstants;

import javax.swing.text.StyleContext;

import javax.swing.text.StyledDocument;

public class ImageViewer extends JFrame

{

private static final long serialVersionUID = 1L;

private static final String DOWNLOADPATH = "download/";

JTextPane textPane = new JTextPane ();

LinkedList initString = new LinkedList ();

LinkedList initStyles = new LinkedList ();

LinkedList path = new LinkedList ();

public ImageViewer ()

{

setTitle ("图片预览下载器 v1.0");

setLayout (new BorderLayout ());

setSize (500, 300);

setLocationRelativeTo (null);

setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

}

private void addComponents ()

{

final JTextField urltField = new JTextField ();

JPanel right = new JPanel (new FlowLayout (FlowLayout.RIGHT, 0, 0));

final JButton go = new JButton ("GO");

textPane.setEditable (false);

JScrollPane content = new JScrollPane (textPane);

go.addActionListener (new ActionListener ()

{

@Override

public void actionPerformed ( ActionEvent e )

{

String url = urltField.getText ().trim ();

resolveHTML (url, "utf8", "(?i)\\]*src[\\=\\s\'\"]+([^\\>\'\"]+)[\'\"]?[^\\>]*\\>");

}

});

JPanel up = new JPanel (new BorderLayout ());

up.add (urltField, BorderLayout.CENTER);

right.add (go);

JButton download = new JButton ("DOWNLOAD");

download.addActionListener (new ActionListener ()

{

@Override

public void actionPerformed ( ActionEvent e )

{

downloadImages ();

}

});

right.add (download);

up.add (right, BorderLayout.EAST);

add (up, BorderLayout.NORTH);

add (content, BorderLayout.CENTER);

}

private void downloadImages ()

{

File fp = new File (DOWNLOADPATH);

if (!fp.exists ())

{

fp.mkdir ();

}

for ( int i = 0; i

{

try

{

String p = path.get (i);

URL url = new URL (p);

HttpURLConnection huc = (HttpURLConnection) url.openConnection ();

huc.setRequestMethod ("GET");

huc.setConnectTimeout (5 * 1000);

InputStream is = huc.getInputStream ();

ByteArrayOutputStream baos = new ByteArrayOutputStream ();

byte[] buffer = new byte[1024];

int len = -1;

while (( len = is.read (buffer) ) != -1)

{

baos.write (buffer, 0, len);

}

baos.flush ();

baos.close ();

is.close ();

huc.disconnect ();

byte[] data = baos.toByteArray ();

String name = p.substring (p.lastIndexOf ("/") + 1, p.length ());

name = name.contains (".") ? name : name + ".jpg";

FileOutputStream fos = new FileOutputStream (new File (DOWNLOADPATH + name));

fos.write (data);

fos.flush ();

fos.close ();

}

catch (Exception e)

{

continue;

}

}

}

private void loadImages ( List initString, List initStyles, List url )

{

try

{

StyledDocument doc = textPane.getStyledDocument ();

doc.remove (0, doc.getLength ());

addStylesToDocument (doc, url, initStyles);

for ( int i = 0; i

{

doc.insertString (doc.getLength (), initString.get (i), doc.getStyle (initStyles.get (i)));

}

}

catch (Exception e)

{}

}

protected void addStylesToDocument ( StyledDocument doc, List url, List initStyles )

{

Style def = StyleContext.getDefaultStyleContext ().getStyle (StyleContext.DEFAULT_STYLE);

for ( int i = 0; i

{

Style s = doc.addStyle (initStyles.get (i), def);

StyleConstants.setAlignment (s, StyleConstants.ALIGN_CENTER);

ImageIcon icon = createImageIcon (url.get (i));

if (icon != null)

{

StyleConstants.setIcon (s, icon);

}

}

}

protected static ImageIcon createImageIcon ( String url )

{

URL imgURL = null;

try

{

imgURL = new URL (url);

if (imgURL != null)

{

return new ImageIcon (imgURL);

}

}

catch (Exception e)

{}

return null;

}

private void resolveHTML ( String spec, String charsetName, String regex )

{

try

{

URL url = new URL (spec);

HttpURLConnection huc = (HttpURLConnection) url.openConnection ();

InputStreamReader isr = new InputStreamReader (huc.getInputStream (), charsetName);

BufferedReader br = new BufferedReader (isr);

StringBuilder builder = new StringBuilder ();

String line = null;

while (null != ( line = br.readLine () ))

{

builder.append (line);

}

br.close ();

isr.close ();

huc.disconnect ();

String bs = builder.toString ();

Pattern pattern = Pattern.compile (regex);

Matcher matcher = pattern.matcher (bs);

initString.clear ();

initStyles.clear ();

path.clear ();

while (matcher.find ())

{

String p = matcher.group (1);

initString.add (" ");

initStyles.add (p);

path.add (p);

}

loadImages (initString, initStyles, path);

}

catch (Exception e)

{

return;

}

}

public static void main ( String[] args )

{

SwingUtilities.invokeLater (new Runnable ()

{

@Override

public void run ()

{

ImageViewer tester = new ImageViewer ();

tester.addComponents ();

tester.setVisible (true);

}

});

}

}

java 获取mp3 封面_java如何获取.mp3格式文件内置歌曲封面相关推荐

  1. Java并发编程(1):可重入内置锁

    每个Java对象都可以用做一个实现同步的锁,这些锁被称为内置锁或监视器锁.线程在进入同步代码块之前会自动获取锁,并且在退出同步代码块时会自动释放锁.获得内置锁的唯一途径就是进入由这个锁保护的同步代码块 ...

  2. java mp3解析_java深度解析mp3文件

    mp3这种音乐格式的音乐文件在我们的生活中遇到的是最多最普通的,那么他们有那些属性了.要是你看到下面的解释没有觉得他很强大,那你就是一个强人,在网上淘的,加上自己的一些理解吧 import java. ...

  3. java opencv 读取视频_java使用OpenCV从视频文件中获取帧

    本文实例为大家分享了java使用OpenCV从视频文件中获取帧的具体代码,供大家参考,具体内容如下 实现功能:使用Java获取mp4.mov.avi等视频文件中的图像帧,每秒获取一帧图像,并保存 环境 ...

  4. java后台怎么获取系统时间_Java 后台获取当前时间

    Calendar c = Calendar.getInstance();//可以对每个时间域单独修改 int year = c.get(Calendar.YEAR); int month = c.ge ...

  5. 在java中图片路径_java中获取图片路径三中方法

    java中获取图片路径的方法 //获取路径三中方法 //+ f.getOriginalFilename(); //String filedir = Thread.currentThread().get ...

  6. java中转换日期_java中时间日期格式讲解和转换方法

    额,其实做项目一个无可避免的工具包就是时间日期格式的转换.因为时间久了所以自己也存了好多关于转换的方法之类的.但是有时候就会不满足需求,手写一时半会儿还写不出来(我不知道是不是我太菜了,知道某类大概有 ...

  7. python中获取目录下所有文件名以及读取一个文件内的每一行

    2020-12-25 读取目录下所有文件 img_list=os.listdir(img_path) 获取img_path下所有文件名,返回值类型为list,同时也可以得到该目录下所有文件夹名 读取文 ...

  8. java odbc 实现access连接并导出mdb格式文件

    文章目录 一.前言 二.概述 三.具体实现 1.思路 2.access数据库连接 3.环境搭建(如果jdk版本低于8,可以直接跳过) 4.代码 四.总结 一.前言 知识是伟大的,奉献知识的人更是伟大的 ...

  9. java mp3 信息_Java代码获取Mp3音乐的歌名、歌手、专辑名等信息

    这里介绍的是使用Jaudiotagger库获取Mp3音频文件的歌名.歌手.专辑名等信息.使用的jaudiotagger-2.2.6-SNAPSHOT.jar包下载地址:Download. 实现代码如下 ...

最新文章

  1. 14 Java面试之 IO 流技术
  2. 安装python-devel开发包
  3. 最烦人的正则表达式记忆口诀
  4. 毕业设计《MMORPG DEMO》——1
  5. 【工具】模板引擎 Velocity
  6. Java设计模式之组合Composite模式代码示例
  7. Some Tips About Layout Resource
  8. 切换Debug/Release编译模式和Archive的作用
  9. Java线程池,从使用到原理
  10. 使用Akka持久化——消息发送与接收
  11. Java拓展(数据类型及其大小)
  12. 目前使用的工具及开发方式
  13. python二进制转十进制代码_python二进制转十六进制代码
  14. TCP模块如何处理数据包
  15. spss 安装包以及许可证
  16. 资源池(数据库连接池,内存池,线程池)
  17. Unity2D中逐帧动画的制作
  18. 安全牛:安全与业务不存在平衡 证明价值是关键
  19. 回调函数,监听函数 关系 个人学习理解
  20. 201709-2公共钥匙盒

热门文章

  1. 使用 Wireshark 进行计算机网络协议分析
  2. IOS版伪春菜开发笔记1.0之XCODE快速上手篇
  3. 20个月股票投资经验全面总结,买格力电器也能亏钱,牛逼企业的股票,竟然由傻瓜在定价
  4. 丁华锋 机器人_国家重点研发计划“智能机器人”项目在西安交大启动
  5. 关于WMPlayer.OCX.7
  6. 一款开源的播放器框架WMPlayer
  7. 关于mt6572不能开机问题
  8. jquery:$elem.is(‘:hidden‘)的含义
  9. 带编制的博士坑位(拒绝非升即走)
  10. 辐射4ap回复速度_磁共振清晰没辐射,为何却总推荐做CT,道理很简单,但有人不相信...