Java: getResourceAsStream dans la méthode statique
Pour appelergetResourceAsStream
dans une méthode statique, nous utilisonsClassName.class
au lieu degetClass()
1. En méthode non statique
getClass().getClassLoader().getResourceAsStream("config.properties"))
2. En méthode statique
ClassName.class.class.getClassLoader().getResourceAsStream("config.properties"))
1. Méthode non statique
Un fichier.properties
dans le chemin de classe du projet.
src/main/resources/config.properties
#config file json.filepath = /Users/example/Documents/workspace/SnakeCrawler/data/
FileHelper.java
package com.example; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class FileHelper { public static void main(String[] args) { FileHelper obj = new FileHelper(); System.out.println(obj.getFilePathToSave()); } public String getFilePathToSave() { Properties prop = new Properties(); String result = ""; try (InputStream inputStream = getClass() .getClassLoader().getResourceAsStream("config.properties")) { prop.load(inputStream); result = prop.getProperty("json.filepath"); } catch (IOException e) { e.printStackTrace(); } return result; } }
Sortie
/Users/example/Documents/workspace/SnakeCrawler/data/
2. Méthode statique
Si la méthodegetFilePathToSave()
est convertie en méthode statique, la méthodegetClass()
échouera et inviteCannot make a static reference to the non-static method getClass() from the type Object
To fix this, mettre à jourgetClass()
enClassName.class
FileHelper.java
package com.example; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class FileHelper { public static void main(String[] args) { System.out.println(getFilePathToSaveStatic()); } public static String getFilePathToSaveStatic() { Properties prop = new Properties(); String result = ""; try (InputStream inputStream = FileHelper.class .getClassLoader().getResourceAsStream("config.properties")) { prop.load(inputStream); result = prop.getProperty("json.filepath"); } catch (IOException e) { e.printStackTrace(); } return result; } }
Sortie
/Users/example/Documents/workspace/SnakeCrawler/data/