|
@@ -0,0 +1,164 @@
|
|
|
+package com.miaxis.test;
|
|
|
+
|
|
|
+
|
|
|
+import com.miaxis.JsjpApplication;
|
|
|
+import com.miaxis.icon.domain.IconClassify;
|
|
|
+import com.miaxis.icon.domain.IconData;
|
|
|
+import com.miaxis.icon.service.IIconClassifyService;
|
|
|
+import com.miaxis.icon.service.IIconDataService;
|
|
|
+import org.junit.Test;
|
|
|
+import org.junit.runner.RunWith;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.boot.test.context.SpringBootTest;
|
|
|
+import org.springframework.test.context.junit4.SpringRunner;
|
|
|
+
|
|
|
+import java.io.*;
|
|
|
+import java.net.HttpURLConnection;
|
|
|
+import java.net.URL;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+
|
|
|
+@SpringBootTest(classes = JsjpApplication.class)
|
|
|
+@RunWith(SpringRunner.class)
|
|
|
+public class YDTDownload {
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IIconDataService conDataService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IIconClassifyService conClassifyService;
|
|
|
+
|
|
|
+
|
|
|
+ private static String savePath = "E:\\驾培\\一点通JSON数据\\";
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testExcel() throws Exception {
|
|
|
+
|
|
|
+ List<IconClassify> list = conClassifyService.selectIconClassifyList(null);
|
|
|
+
|
|
|
+ downLoadList(list);
|
|
|
+
|
|
|
+ //List<IconData> iconDataList = conDataService.selectIconDataList(null);
|
|
|
+
|
|
|
+ //downLoadList(iconDataList);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public static void downLoadList(List<?> list) {
|
|
|
+
|
|
|
+ if (list.get(0) instanceof IconClassify) {
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ IconClassify iconClassify = (IconClassify)list.get(i);
|
|
|
+ String coverImg = iconClassify.getCoverImg(); //要修改
|
|
|
+
|
|
|
+ String[] coverImgArray = coverImg.split(",");
|
|
|
+
|
|
|
+ for (int j = 0; j < coverImgArray.length; j++) {
|
|
|
+ String coverImgSingle = coverImgArray[j];
|
|
|
+
|
|
|
+ int index = coverImgSingle.lastIndexOf("/");
|
|
|
+ String fileName = coverImgSingle.substring(index + 1);
|
|
|
+
|
|
|
+ try {
|
|
|
+ downLoadFromUrl(coverImgSingle, fileName, savePath + "classifyImg"); //要修改
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (list.get(0) instanceof IconData) {
|
|
|
+
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ IconData conData = (IconData)list.get(i);
|
|
|
+ String icon = conData.getIcon(); //要修改
|
|
|
+ int index = icon.lastIndexOf("/");
|
|
|
+ String fileName = icon.substring(index + 1);
|
|
|
+
|
|
|
+ try {
|
|
|
+ downLoadFromUrl(icon, fileName, savePath + "dataImg"); //要修改
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public static void downLoadFromUrl(String urlStr, String fileName, String savePath) throws IOException {
|
|
|
+ URL url = new URL(urlStr);
|
|
|
+ HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
|
|
+ //设置超时间为3秒
|
|
|
+ conn.setConnectTimeout(3 * 1000);
|
|
|
+ //防止屏蔽程序抓取而返回403错误
|
|
|
+ conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
|
|
|
+ //得到输入流
|
|
|
+ InputStream inputStream = conn.getInputStream();
|
|
|
+
|
|
|
+ //获取自己数组
|
|
|
+ byte[] getData = readInputStream(inputStream);
|
|
|
+
|
|
|
+ //文件保存位置
|
|
|
+ File saveDir = new File(savePath);
|
|
|
+ if (!saveDir.exists()) {
|
|
|
+ saveDir.mkdir();
|
|
|
+ }
|
|
|
+ int index = fileName.lastIndexOf(".");
|
|
|
+ String first = fileName.substring(0, index);
|
|
|
+ String lastName = fileName.substring(index);
|
|
|
+ System.out.println(fileName);
|
|
|
+ first += lastName; //要修改
|
|
|
+
|
|
|
+ System.out.println(savePath + "\\" + fileName);
|
|
|
+
|
|
|
+ File file = new File(saveDir + File.separator + first);
|
|
|
+
|
|
|
+ FileOutputStream fos = new FileOutputStream(file);
|
|
|
+
|
|
|
+ fos.write(getData);
|
|
|
+
|
|
|
+ if (fos != null) {
|
|
|
+ fos.close();
|
|
|
+ }
|
|
|
+ if (inputStream != null) {
|
|
|
+
|
|
|
+ inputStream.close();
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ Thread.sleep(300);
|
|
|
+ } catch (InterruptedException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ System.out.println("info:" + url + " download success");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从输入流中获取字节数组
|
|
|
+ *
|
|
|
+ * @param inputStream
|
|
|
+ * @return
|
|
|
+ * @throws IOException
|
|
|
+ */
|
|
|
+ public static byte[] readInputStream(InputStream inputStream) throws IOException {
|
|
|
+
|
|
|
+ byte[] buffer = new byte[1024];
|
|
|
+
|
|
|
+ int len = 0;
|
|
|
+
|
|
|
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
|
|
+ while ((len = inputStream.read(buffer)) != -1) {
|
|
|
+ bos.write(buffer, 0, len);
|
|
|
+ }
|
|
|
+ bos.close();
|
|
|
+
|
|
|
+ return bos.toByteArray();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|