Resource über den ClassLoader laden

Tikonteroga

Erfahrenes Mitglied
Hallo,

ich muss mit der Poi-API eine Excel Datei mit Daten aus einer Datenbank befüllen. Hierfür muss ich eine xls-Template Datei als verwenden.

Nun habe ich eine Datei "Template.xls" in mein Package kopiert und versucht diese als InputStream zu laden.

Hier mal ein Ausschnitt aus meinem Code.

Code:
ClassLoader classLoader = FileInputStream.class.getClassLoader();
		
String resource = "/com/ExcelReport/Template.xls";
		
InputStream inputStream = classLoader.getResourceAsStream(resource);

Leider erhalte ich beim Aufruf von getResourceAsStream() eine Exception.

Kann mir jemand sagen was ich falsch mache ?

Gruß
 
Falls es sich um eine FileNoteFoundExc. handeln sollte, kannst du mal folgendes probieren:

probier mal:
Code:
getClass().getResourceAsStream("Template.xls")

Gruß

Sebastian
 
Hi,

ich glaube der Slash ("/") am Anfang Deiner Pfadangabe stört. Versuchs mal ohne.

Gruß twagi
 
Hallo,

danke für die Vorschläge.

Der erste Vorschlag schien erst zu funktionieren. Jedoch wird die XLS Datei nicht richtig eingelesen.

Folgende beiden Implementierungen sind nicht äquivalent, müssen es jedoch sein, damit meine Anforderungen erfüllt wären.

Folgende Implementierung führt dazu, dass ein Workbook erstellt wird, jedoch wird ein neues Workbook erstellt nund nicht mein Template geladen.

Code:
Class<?> classType = this.getClass();

InputStream inputStream = classType.getResourceAsStream("Template.xls");

HSSFWorkbook workbook = new HSSFWorkbook(inputStream);

Folgender Code liest die XLS Datei richtig ein und ich kann über die POI API auf die Daten zugreifen. Es muss beachtet werden, dass ich vertrauliche Daten innerhalb des Pfads durch [...] maskiert habe.

Code:
File file = new File("C:\\...\\Workspace\\...\\Template.xls");
			FileInputStream fileInputStream = new FileInputStream(file);
			HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream);
 
Zuletzt bearbeitet:
So vllt.?
Java:
import java.io.File;

public class test {

   public static void main(String[] args) {
 
      String filePath = test.class.getResource("Template.xls").toString();
      filePath = filePath.substring(5);
      
      File f = new File(filePath);
      
      System.out.println("FilePath: " + filePath + "\nFile: " + f);

     /*
     FileInputStream fileInputStream = new FileInputStream(f);
     HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream);
    */
   }

}
 

Neue Beiträge

Zurück