簡體   English   中英

來自相對路徑的 InputStream

[英]InputStream from relative path

我有一個相對文件路徑(例如“/res/example.xls”),我想從該路徑獲取該文件的InputStream對象。

我檢查了JavaDoc並沒有找到從路徑/獲取此類 InputStream 的構造函數或方法

有人有什么想法嗎? 請告訴我!

使用FileInputStream

InputStream is = new FileInputStream("/res/example.xls");

但永遠不要從原始文件輸入流中讀取,因為這非常慢。 首先用緩沖裝飾器包裝它:

new BufferedInputStream(is);

順便說一句,前導斜杠意味着路徑是絕對的,而不是相對的。

InputStream inputStream = Files.newInputStream(Path);

初始化一個變量,例如: Path filePath ,然后:

FileInputStream fileStream;
try {
    fileStream = new FileInputStream(filePath.toFile());
} catch (Exception e) {
    throw new RuntimeException(e);
}

完畢 ! 使用 Path 您可以訪問許多有用的方法。

new FileInputStream("your_relative_path")將相對於當前工作目錄。

發現這更優雅,打字更少。

import java.nio.file.Files;
import java.nio.file.Paths;

InputStream inputStream = Files.newInputStream(Paths.get("src/test/resources/sampleFile.csv"));

注意:在我的情況下,文件非常小(用於單元測試),但更喜歡使用 BufferedInputStream 以提高效率。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM