最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java獲取本地文件和遠(yuǎn)程文件的方式代碼示例

 更新時間:2023年08月25日 09:40:24   作者:碼至終章  
這篇文章主要給大家介紹了關(guān)于java獲取本地文件和遠(yuǎn)程文件的方式,我們項目開發(fā)的時候,經(jīng)常會讀取文件,如果文件在本服務(wù)器,則直接用new File()讀取即可,但是有時候需要遠(yuǎn)程讀取文件,需要的朋友可以參考下

問題背景:

我們項目開發(fā)的時候,經(jīng)常會讀取文件,如果文件在本服務(wù)器,則直接用new File() 讀取即可,但是有時候需要遠(yuǎn)程讀取文件,比如讀取分布式存儲服務(wù)器的內(nèi)容或者是別人家的圖片資源,這個時候new File就無法滿足要求了。

下面提供列出獲取遠(yuǎn)程文件和本地文件的方式

1、獲取遠(yuǎn)程文件

如圖片路徑為 https://kk360.com/user/20230622/gm/30293817365.jpg

import java.net.HttpURLConnection;
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
public byte[] getFile(String filePath) {
        int HttpResult; // 服務(wù)器返回的狀態(tài)
        byte[] bytes = new byte[204800]; //設(shè)置數(shù)組大小
        try
        {
            URL url =new URL(filePath); // 創(chuàng)建URL
            URLConnection urlconn = url.openConnection(); // 試圖連接并取得返回狀態(tài)碼
            urlconn.connect();
            HttpURLConnection httpconn =(HttpURLConnection)urlconn;
            HttpResult = httpconn.getResponseCode();
            if(HttpResult != HttpURLConnection.HTTP_OK) {
            	log.error("獲取文件失敗,無法連接到文件資源")
            } else {
                int filesize = urlconn.getContentLength(); // 取數(shù)據(jù)長度
                log.info("取數(shù)據(jù)長度:{}",filesize)
                urlconn.getInputStream();
                InputStream inputStream = urlconn.getInputStream();
				//如果這里只需要返回stream,則直接返回 不需要轉(zhuǎn)byte[]
                ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
                int ch;
                while ((ch = inputStream.read()) != -1) {
                    swapStream.write(ch);
                }
                bytes = swapStream.toByteArray();
            }
            log.info("文件大小,length:{}",bytes.length);
        }
        catch (Exception e) {
        	log.error("獲取文件異常,e:{}",e);
        }
        return  bytes;
    }

2、獲取本地文件

File file = new File("/resource/static/sdsadc12.jpg");
		InputStream in = null;
		try {
			// 一次讀多個字節(jié)
			byte[] tempbytes = new byte[100];
			int byteread = 0;
			in = new FileInputStream(file);
			// 讀入多個字節(jié)到字節(jié)數(shù)組中,byteread為一次讀入的字節(jié)數(shù)
			while ((byteread = in.read(tempbytes)) != -1) {
				System.out.write(tempbytes, 0, byteread);
			}
			log.info("文件大小:{}"+file.length());
		} catch (Exception ee) {
			log.error("異常:{}",ee);
		} finally {
			if (in != null) {
				try {
					in.close();
				} catch (IOException e1) {
				}
			}
		}

總結(jié) 

到此這篇關(guān)于java獲取本地文件和遠(yuǎn)程文件的文章就介紹到這了,更多相關(guān)java獲取本地文件和遠(yuǎn)程文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決springboot的JPA在Mysql8新增記錄失敗的問題

    解決springboot的JPA在Mysql8新增記錄失敗的問題

    這篇文章主要介紹了解決springboot的JPA在Mysql8新增記錄失敗的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 一篇文章帶你入門Java接口

    一篇文章帶你入門Java接口

    這篇文章主要介紹了JAVA中接口的定義和接口的實現(xiàn),文中講解非常細(xì)致,配合代碼更好的幫大家學(xué)習(xí)參考,感興趣的朋友可以了解下
    2021-08-08
  • SpringBoot 編程式事務(wù)使用及兩種實現(xiàn)方式

    SpringBoot 編程式事務(wù)使用及兩種實現(xiàn)方式

    編程式事務(wù)管理是通過編寫代碼來管理事務(wù),相對于聲明式事務(wù)(@Transactional注解),它提供了更細(xì)粒度的事務(wù)控制,這篇文章主要介紹了SpringBoot 編程式事務(wù)使用及兩種實現(xiàn)方式,需要的朋友可以參考下
    2024-12-12
  • Java如何實現(xiàn)批量打印條形碼

    Java如何實現(xiàn)批量打印條形碼

    這篇文章主要為大家詳細(xì)介紹了如何基于?ZXing?庫生成條形碼位圖,并利用?Java?打印服務(wù)(PrinterJob)將它們以網(wǎng)格方式批量打印到?A4?標(biāo)簽紙或標(biāo)簽紙格式,需要的小伙伴可以參考一下
    2025-05-05
  • Bean的管理與SpringBoot自動裝配原理解讀

    Bean的管理與SpringBoot自動裝配原理解讀

    在SpringBoot項目中,啟動時自動創(chuàng)建IOC容器并初始化bean對象,支持通過依賴注入獲取,Bean可以通過name或類型獲取,支持單例和非單例等多種作用域,對于第三方Bean,推薦在配置類中用@Bean標(biāo)識方法進(jìn)行定義
    2024-11-11
  • Java排序算法中的冒泡排序算法實現(xiàn)

    Java排序算法中的冒泡排序算法實現(xiàn)

    這篇文章主要介紹了Java排序算法中的冒泡排序算法實現(xiàn),冒泡排序只會操作相鄰的兩個數(shù)據(jù),每次冒泡操作都會對相鄰的兩個元素進(jìn)行比較,看是否滿足大小關(guān)系要求,如果不滿足就讓它倆互換,需要的朋友可以參考下
    2023-12-12
  • SpringBoot + MapStruct 屬性映射工具的使用詳解

    SpringBoot + MapStruct 屬性映射工具的使用詳解

    MapStruct 是一個代碼生成器,簡化了不同的 Java Bean 之間映射的處理,所謂的映射指的就是從一個實體變化成一個實體。接下來通過本文給大家介紹SpringBoot + MapStruct 屬性映射工具的使用,需要的朋友可以參考下
    2021-09-09
  • springboot開啟mybatis二級緩存的步驟詳解

    springboot開啟mybatis二級緩存的步驟詳解

    這篇文章給大家介紹了springboot開啟mybatis二級緩存的詳細(xì)步驟,文中通過代碼示例給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • Java基于Spire.XLS實現(xiàn)從Excel到PDF的發(fā)票自動化生成

    Java基于Spire.XLS實現(xiàn)從Excel到PDF的發(fā)票自動化生成

    隨著業(yè)務(wù)數(shù)字化進(jìn)程的不斷推進(jìn),許多企業(yè)開始嘗試用自動化手段替代手工開票,本文將基于 Spire.XLS for Java 介紹如何快速實現(xiàn)從 Excel 到 PDF的發(fā)票生成自動化方法,感興趣的小伙伴可以了解下
    2025-06-06
  • Spring自定義注解實現(xiàn)接口版本管理

    Spring自定義注解實現(xiàn)接口版本管理

    這篇文章主要介紹了Spring自定義注解實現(xiàn)接口版本管理,RequestMappingHandlerMapping類是與 @RequestMapping相關(guān)的,它定義映射的規(guī)則,即滿足怎樣的條件則映射到那個接口上,需要的朋友可以參考下
    2023-11-11

最新評論

杭州市| 永昌县| 德昌县| 图木舒克市| 永和县| 哈巴河县| 龙泉市| 温泉县| 镇远县| 商水县| 龙江县| 苏州市| 城固县| 论坛| 海晏县| 西盟| 安塞县| 西丰县| 太原市| 新乡县| 建阳市| 康平县| 旬邑县| 分宜县| 张家川| 霞浦县| 乌苏市| 凌海市| 菏泽市| 镇康县| 闽清县| 乌恰县| 沽源县| 万载县| 古蔺县| 罗甸县| 双牌县| 黄陵县| 西华县| 韶山市| 祥云县|