欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)文章

  • Java日常練習(xí)題,每天進(jìn)步一點點(23)

    Java日常練習(xí)題,每天進(jìn)步一點點(23)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • 利用Java巧妙解決Excel公式迭代計算

    利用Java巧妙解決Excel公式迭代計算

    迭代計算其實是在?Excel?中,一種公式的循環(huán)引用,那么如何利用Java語言巧妙解決Excel公式迭代計算的問題呢,下面小編就來和大家詳細(xì)講講吧
    2023-10-10
  • java JDBC系列教程之JDBC類的簡析與JDBC的基礎(chǔ)操作

    java JDBC系列教程之JDBC類的簡析與JDBC的基礎(chǔ)操作

    這篇文章主要介紹了java JDBC系列教程之JDBC類的簡析與JDBC的基礎(chǔ)操作,本文分步驟通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • java操作Apache druid的實例代碼

    java操作Apache druid的實例代碼

    這篇文章主要介紹了java操作Apache druid的實例代碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • java控制臺實現(xiàn)可視化日歷小程序

    java控制臺實現(xiàn)可視化日歷小程序

    這篇文章主要為大家詳細(xì)介紹了java控制臺實現(xiàn)可視化日歷小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Java泛型和Class類用法示例

    Java泛型和Class類用法示例

    這篇文章主要介紹了Java泛型和Class類用法,結(jié)合實例形式分析了java使用泛型限制class類避免強制類型轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • SpringAOP中基于注解實現(xiàn)通用日志打印方法詳解

    SpringAOP中基于注解實現(xiàn)通用日志打印方法詳解

    這篇文章主要介紹了SpringAOP中基于注解實現(xiàn)通用日志打印方法詳解,在日常開發(fā)中,項目里日志是必不可少的,一般有業(yè)務(wù)日志,數(shù)據(jù)庫日志,異常日志等,主要用于幫助程序猿后期排查一些生產(chǎn)中的bug,需要的朋友可以參考下
    2023-12-12
  • Spring?@Scheduled定時器注解使用方式

    Spring?@Scheduled定時器注解使用方式

    這篇文章主要介紹了Spring?@Scheduled定時器注解使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 實例分析Try {} Catch{} 作用

    實例分析Try {} Catch{} 作用

    本文是通過一個簡單的實例,向大家介紹了Try {} Catch{}的意義和作用,非常的實用,有需要的小伙伴可以參考下。
    2015-10-10
  • Java并發(fā)編程總結(jié)——慎用CAS詳解

    Java并發(fā)編程總結(jié)——慎用CAS詳解

    下面小編就為大家?guī)硪黄狫ava并發(fā)編程總結(jié)——慎用CAS詳解。小編覺得挺不錯的, 現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06

最新評論