Séparateur de fichiers en java sur Linux et Windows

J'ai un java swing application de base de données qui doit être exécuté sur windows et Linux, ma connexion à la base de données sont stockées dans un fichier XML et je me charge d'eux comme,

cette application peut charger cette liste de propriétés sur Linux correctement, mais il ne fonctionne pas sur windows, s'il vous plaît dites-moi comment faire pour charger les fichiers sur de multiples plateformes correctement.

c'est le code,

PropertyHandler propertyWriter = new PropertyHandler();
            //get properties from the xml in the file structure
            List keys = new ArrayList();
            keys.add("ip");
            keys.add("database");
            Map localProps = propertyWriter.read(keys, "conf" + File.separatorChar + "properties.xml", true);//if false load from the local properties

            //get properties from the xml in the internal package
            List seKeys = new ArrayList();
            seKeys.add("driver");
            seKeys.add("username");
            seKeys.add("password");

            Map seProps = propertyWriter.read(seKeys, "conf" + File.separatorChar + "properties.xml", true);

            String dsn = "jdbc:mysql://" + (String) localProps.get("ip") + ":3306/" + (String) localProps.get("database");
            jDBCConnectionPool = new JDBCConnectionPool((String) seProps.get("driver"), dsn, (String) seProps.get("username"), (String) seProps.get("password"));

lecteur de fichiers méthode,

public Map read(List properties, String path, boolean isConfFromClassPath) {

        Properties prop = new Properties();
        Map props = new HashMap();
        try {

            if (isConfFromClassPath) {
                InputStream in = this.getClass().getClassLoader().getResourceAsStream(path);
                prop.loadFromXML(in);

                for (Iterator i = properties.iterator(); i.hasNext();) {
                    String key = (String) i.next();
                    props.put(key, prop.getProperty(key));
                }
                in.close();

            } else {
                FileInputStream in = new FileInputStream(path);
                prop.loadFromXML(in);

                for (Iterator i = properties.iterator(); i.hasNext();) {
                    String key = (String) i.next();
                    props.put(key, prop.getProperty(key));
                }
                in.close();
            }

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return props;
    }
Habituellement, vous pouvez aller avec le /, cela fonctionne dans la plupart des cas: "conf/properties.xml" (même sous Windows).
Définir "ne fonctionne pas correctement".
Est-il une exception ou d'une trace de votre code?
Il travaille dans le tous cas. Je n'ai jamais utiliser la barre oblique inverse dans les noms de fichiers.

OriginalL'auteur Harsha | 2012-05-15