Hallo zusammen ich hab da ein Problem ebi dem ich einfach nciht weiter komm.
JRBEFileReader.class
Diese DAtei soll sämtliche Unterordner durchleuchten bis er auf dateien trifft und diese Splitten udn in Hashmaps speichern.
Dann hab ich noch eine klasse JRBEContentDaoImpl.class
die geht natürlich noch weiter aber das mit dem Iterator klappt nihct , ich bekomm immer eine nullpointerexception !!! Wenn ich aber die whileschleife und den iterator wegnehm, dann klappts, also wieso? das versteh ich cniht
JRBEFileReader.class
Code:
/*
* Created on 16.01.2007
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package de.dis.crm.jrbe.support;
import java.io.File;
import java.util.HashMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* @author m.kandzia
*/
public class JRBEFileReader
{
private final static Log logger = LogFactory.getLog(JRBEFileReader.class);
public HashMap listDir(File dir)
{
HashMap application = null;
File[] files = dir.listFiles();
if (files != null)
{
for (int i = 0; i < files.length; i++)
{
//System.out.print(files[i].getName());
if (files[i].isDirectory())
{
//System.out.print(" (Ordner)\n");
listDir(files[i]); //Rekursion - Funktion ruft sich selbst wieder auf
}
else
{
String[] name = files[i].getName().split("_");
String app = name[0]; //Wert vor dem Unterstrich - Applikation
String data = name[1];
String[] lang = data.split("\\."); //Wert nach dem Unterstrich ohne Dateikürzel - Länderkürzel
HashMap appMap = (HashMap)application.get(app); //Gibt den Value an (appMap) der dem Key (app) zugewiesen ist
if (appMap == null) //Besteht die HasMap appMap noch nicht
{
appMap = new HashMap(); //Erzeugt neuen Innere HashMap appMap
application.put(app,appMap); //Setzt Key und Value (Applikation und andere HashMap) der äußeren HashMap
}
appMap.put(lang,files[i].getAbsoluteFile()); //Setzt Key und Value (Länderkürzel und Pfad) der innen HashMap
//System.out.println("\nApplikation: "+app+" Sprache: "+lang[0]+"\n");
}
}
}
return application;
}
}
Diese DAtei soll sämtliche Unterordner durchleuchten bis er auf dateien trifft und diese Splitten udn in Hashmaps speichern.
Dann hab ich noch eine klasse JRBEContentDaoImpl.class
Code:
/*
* Created on 11.01.2007
*/
package de.dis.crm.db.dao.jrbe;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import org.apache.commons.lang.StringUtils;
import de.dis.crm.jrbe.support.I18nDTO;
import de.dis.crm.jrbe.support.JRBEFileReader;
/**
* @author m.kandzia
*/
public class JRBEContentDaoImpl implements JRBEContentDao
{
String path;
String folderNative;
JRBEFileReader fileReader;
public I18nDTO getJRBEContentObject()
{
I18nDTO dto = new I18nDTO();
try
{
HashMap appHash = fileReader.listDir(new File(folderNative));
Iterator it = (Iterator)appHash.keySet();
while (it.hasNext())
{
die geht natürlich noch weiter aber das mit dem Iterator klappt nihct , ich bekomm immer eine nullpointerexception !!! Wenn ich aber die whileschleife und den iterator wegnehm, dann klappts, also wieso? das versteh ich cniht