国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java通過url讀取遠程數據并保持到本地的實例代碼

java通過url讀取遠程數據并保持到本地的實例代碼

2021-05-12 15:51狐狽筱筱生 Java教程

本文通過實例代碼給大家介紹了java通過url讀取遠程數據并保持到本地的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

前幾天老姐突然告訴我,她在jd上買了本電子圖書,如何買完發現,只能在線或者使用它自己的閱讀器看,很不方便,讓我給想想辦法。

如何我就開始琢磨,最開始,我直接使用acrobat reader打開,發現只有目錄,沒有其他,而且頁面上面的都存在,我想可能在正確的內容上增加了一塊蒙版,只能用"鑰匙"的人可以過濾它,要破解別人的編輯器,短時間肯定是不行的的,網上也有很多人想到的是使用自動化腳本去自動對官方閱讀器截圖,但是我發現,截圖不是一頁一頁的,這就很懵逼了。最后只能通過在線閱讀這條線來想辦法。

這個辦法和網友的類似,都是保存為圖片,如何通過pdf工具制作成pdf。

在線閱讀驚奇發現,文檔真好,一頁一張圖片,它已經給你做好,只是每次只更新出當前頁的前后幾張,其他的會被清除。到這里,思路就有了:

  1. 跳轉到第n頁
  2. 拉取刷新出來的額圖片路徑
  3. 保存圖片路徑到緩存(我使用的是redis)
  4. 通過網絡工具類,將緩存中的圖片地址全部下載到本地本次為圖片
  5. 將圖片通過pdf工作轉為pdf

第1步到第3步需要重復,可以使用自動工具和腳本來實現。

第4步寫個控制器就可以了,最簡單的java接口就行。

第5步直接網上在線服務就可以實現。

為什么需要先緩存在下載咧,這里涉及到一個效率與圖片去重和過濾的問題,因為每次調整后獲取的圖片可能有重復的,存在redis的map中,自動就去重了;也是為了避免一邊獲取圖片路徑,一邊下載中途異常退出等任務不能正常執行完畢等問題。然后腳本獲取路徑,后保存到自己的服務器,唯一的問題可能就是跨域的問題。結果發現還是少了幾張圖,這樣就體會出使用緩存的好處了,可以直接通過代碼驗證少了那幾張圖,不用去檢查jpg文件,少的文件個位數,最后通過手動補全了。

通過這種方式得到的圖片,唯一缺陷就是帶有"jd讀書"字樣和圖片分辨率不是很高,字體好像帶點毛腳。有強迫癥或者追求高品質的,就使用官方閱讀器吧,個人看了蠻清晰的,是文檔,不是圖片!!!

下面附上java通過url獲取網絡數據保存到本地的代碼。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class httpurlconnectionutil {
// 通過get請求得到讀取器響應數據的數據流
public static inputstream getinputstreambyget(string url) {
  try {
    httpurlconnection conn = (httpurlconnection) new url(url)
        .openconnection();
    conn.setreadtimeout(5000);
    conn.setconnecttimeout(5000);
    conn.setrequestmethod("get");
    if (conn.getresponsecode() == httpurlconnection.http_ok) {
      inputstream inputstream = conn.getinputstream();
      return inputstream;
    }
  } catch (ioexception e) {
    e.printstacktrace();
  }
  return null;
}
// 將服務器響應的數據流存到本地文件
public static void savedata(inputstream is, file file) {
  try (bufferedinputstream bis = new bufferedinputstream(is);
     bufferedoutputstream bos = new bufferedoutputstream(
         new fileoutputstream(file));) {
    byte[] buffer = new byte[1024];
    int len = -1;
    while ((len = bis.read(buffer)) != -1) {
      bos.write(buffer, 0, len);
      bos.flush();
    }
  } catch (ioexception e) {
    e.printstacktrace();
  }
}
}

調用:

?
1
2
3
4
5
6
7
8
9
10
set<string> imgnumber = (set<string>) redistemplate.opsforhash().keys(map_key);
imgnumber.stream().foreach(e->{
        string url = (string) redistemplate.opsforhash().get(map_key,e);
        string filename = e+".jpg";
        file file = new file("e:\\pdf圖片\\", filename);
 
        inputstream inputstream = httpurlconnectionutil
            .getinputstreambyget(url);
        httpurlconnectionutil.savedata(inputstream, file);
});

總結

以上所述是小編給大家介紹的java通過url讀取遠程數據并保持到本地的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://blog.51cto.com/yuqian2203/2135284

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91cn国产在线 | 亚洲精品第一区在线观看 | av免费网站| 精品国产精品三级精品av网址 | 亚洲男人的天堂视频 | 欧美一级看片a免费观看 | 亚洲国产中文字幕 | 一级特色黄大片 | 国产精品美女久久久久av麻豆 | 久久久国产一区 | 毛片网站大全 | 羞羞视频在线播放 | 欧美天堂一区 | 亚洲视频中文字幕 | 国产精品一区视频 | 日韩中文字幕视频在线观看 | 能直接看的av网站 | 精品亚洲一| 久久99久久99精品免观看粉嫩 | 亚洲成人在线播放视频 | 99成人在线 | 精品九九久久 | 亚洲男人在线天堂 | 成年无码av片在线 | 男人的天堂在线免费视频 | 久免费视频 | 色精品| 欧美自拍视频 | 亚洲欧美日韩精品久久亚洲区 | 中文字幕在线永久在线视频 | 国产一区二区三区免费 | 日韩和欧美的一区二区 | 国产精品免费观看 | 日韩在线色| 精品视频久久久 | av日韩在线播放 | 激情五月激情综合网 | 日本jizz在线观看 | 黄色片在线播放 | 91亚洲日本aⅴ精品一区二区 | 黄色美女在线观看 |