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

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

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

問(wèn)題背景:

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

下面提供列出獲取遠(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("獲取文件失敗,無(wú)法連接到文件資源")
            } else {
                int filesize = urlconn.getContentLength(); // 取數(shù)據(jù)長(zhǎng)度
                log.info("取數(shù)據(jù)長(zhǎng)度:{}",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 {
			// 一次讀多個(gè)字節(jié)
			byte[] tempbytes = new byte[100];
			int byteread = 0;
			in = new FileInputStream(file);
			// 讀入多個(gè)字節(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決springboot的JPA在Mysql8新增記錄失敗的問(wèn)題

    解決springboot的JPA在Mysql8新增記錄失敗的問(wèn)題

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

    一篇文章帶你入門Java接口

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

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

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

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

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

    Bean的管理與SpringBoot自動(dòng)裝配原理解讀

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

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

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

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

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

    springboot開(kāi)啟mybatis二級(jí)緩存的步驟詳解

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

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

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

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

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

最新評(píng)論

德保县| 汶上县| 乌鲁木齐市| 宁河县| 都昌县| 吴堡县| 邮箱| 沿河| 林芝县| 多伦县| 贵德县| 大洼县| 沂南县| 江口县| 厦门市| 郴州市| 巴东县| 马鞍山市| 沙田区| 合水县| 若尔盖县| 错那县| 吕梁市| 涿州市| 微山县| 哈尔滨市| 治多县| 高要市| 永胜县| 汕尾市| 汽车| 临朐县| 商城县| 南和县| 河源市| 萝北县| 行唐县| 开封市| 瑞丽市| 贵港市| 高唐县|