[英]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.