Datei in File-Objekt mit UTF-8 einlesen

skummy

Aktives Mitglied
Hallo,

zunächst etwas Code einer Klasse, die die authz-Datei von SVN analysiert und entsprechend ausspuckt, welcher Benutzer wo welche Rechte in einem SVN-Repository hat.
Die Klasse verlangt in dem Konstruktor ein File-Objekt.
Der Aufruf geschieht also mit
SVNPathBasedAccess access = new SVNPathBasedAccess(new File("Path/to/file.authz"));

Java:
/**
 * @author TMate Software Ltd.
 * @version 1.1.2
 */
public class SVNPathBasedAccess {
    private static final Pattern COMMA = Pattern.compile(",");

    private static final String ANONYMOUS_REPOSITORY = "";

    public static final int SVN_ACCESS_NONE = 0;
    public static final int SVN_ACCESS_READ = 1;
    public static final int SVN_ACCESS_WRITE = 2;
    public static final int SVN_ACCESS_RECURSIVE = 4;

    private String myConfigPath;
    private int myCurrentLineNumber = 1;
    private int myCurrentLineColumn = 0;
    private char myUngottenChar = 0;
    private boolean myHasUngottenChar = false;

    private StringBuffer mySectionName;
    private StringBuffer myOption;
    private StringBuffer myValue;

    private Map myGroups;
    private Map myAliases;
    private Map myRules;

    public SVNPathBasedAccess(File pathBasedAccessConfiguration) throws SVNException {
        myConfigPath = pathBasedAccessConfiguration.getAbsolutePath();

        InputStream stream = null;

        try {
            stream = new SVNTranslatorInputStream(SVNFileUtil.openFileForReading(pathBasedAccessConfiguration), SVNProperty.EOL_LF_BYTES, true, null, false);
        } catch (SVNException e) {
            SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "Failed to load the AuthzSVNAccessFile: ''{0}''", pathBasedAccessConfiguration.getAbsolutePath()), SVNLogType.DEFAULT);           
        }

        try {
            parse(stream);
        } catch (IOException e) {
            SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.IO_ERROR, e.getLocalizedMessage()), SVNLogType.DEFAULT);
        }

        validate();
    }

    private String getConfigPath() {
        return myConfigPath;
    }

    private void increaseCurrentLineNumber() {
        myCurrentLineNumber++;
    }

    private int getCurrentLineNumber() {
        return myCurrentLineNumber;
    }

    private void increaseCurrentLineColumn() {
        myCurrentLineColumn++;
    }

    private void resetCurrentLineColumn() {
        myCurrentLineColumn = 0;
    }

    private int getCurrentLineColumn() {
        return myCurrentLineColumn;
    }

    private char getUngottenChar() {
        return myUngottenChar;
    }

    private void setUngottenChar(char ungottenChar) {
        myUngottenChar = ungottenChar;
    }

    private boolean hasUngottenChar() {
        return myHasUngottenChar;
    }

    private void setHasUngottenChar(boolean hasUngottenChar) {
        myHasUngottenChar = hasUngottenChar;
    }

    private StringBuffer getSectionName() {
        if (mySectionName == null) {
            mySectionName = new StringBuffer();
        }
        return mySectionName;
    }

    private StringBuffer getOption() {
        if (myOption == null) {
            myOption = new StringBuffer();
        }
        return myOption;
    }

    private StringBuffer getValue() {
        if (myValue == null) {
            myValue = new StringBuffer();
        }
        return myValue;
    }

    private Map getGroups() {
        if (myGroups == null) {
            myGroups = new SVNHashMap();
        }
        return myGroups;
    }

    private boolean groupContainsUser(String group, String user) {
        String[] groupUsers = (String[]) getGroups().get(group);
        if (groupUsers == null) {
            return false;
        }
        for (int i = 0; i < groupUsers.length; i++) {
            if (groupUsers[i].startsWith("@")) {
                if (groupContainsUser(groupUsers[i].substring("@".length()), user)) {
                    return true;
                }
            } else if (groupUsers[i].startsWith("&")) {
                if (aliasIsUser(groupUsers[i].substring("&".length()), user)) {
                    return true;
                }
            } else if (groupUsers[i].equals(user)) {
                return true;
            }
        }
        return false;
    }

    private Map getAliases() {
        if (myAliases == null) {
            myAliases = new SVNHashMap();
        }
        return myAliases;
    }

    private boolean aliasIsUser(String alias, String user) {
        String aliasValue = (String) getAliases().get(alias);
        return aliasValue != null && aliasValue.equals(user);
    }

    private Map getRules() {
        if (myRules == null) {
            myRules = new SVNHashMap();
        }
        return myRules;
    }

    public boolean checkAccess(String repository, String path, String user, int access) {
        RepositoryAccess repositoryAccess = (RepositoryAccess) getRules().get(repository);
        if (repositoryAccess == null) {
            repositoryAccess = (SVNPathBasedAccess.RepositoryAccess) getRules().get(ANONYMOUS_REPOSITORY);
            if (repositoryAccess == null) {
                return false;
            }
        }
        return repositoryAccess.checkPathAccess(path, user, access);
    }

    private void parse(InputStream is) throws IOException, SVNException {
        boolean isEOF = false;
        int currentByte;

        do {
            currentByte = skipWhitespace(is);
            switch (currentByte) {
                case'[':
                    if (getCurrentLineColumn() == 0) {
                        parseSectionName(is);
                    } else {
                        SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "''{0}'' : ''{1}'' : Section header must start in the first column.", new Object[]{getConfigPath(), new Integer(getCurrentLineNumber())}), SVNLogType.DEFAULT);
                    }
                    break;
                case'#':
                    if (getCurrentLineColumn() == 0) {
                        skipToEndOfLine(is);
                        increaseCurrentLineNumber();
                    } else {
                        SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "''{0}'' : ''{1}'' : Comment must start in the first column.", new Object[]{getConfigPath(), new Integer(getCurrentLineNumber())}), SVNLogType.DEFAULT);
                    }
                    break;
                case'\n':
                    increaseCurrentLineNumber();
                    break;
                case-1:
                    isEOF = true;
                    break;
                default:
                    if (getSectionName().length() == 0) {
                        SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "''{0}'' : ''{1}'' : Section header expected.", new Object[]{getConfigPath(), new Integer(getCurrentLineNumber())}), SVNLogType.DEFAULT);
                    } else if (getCurrentLineColumn() != 0) {
                        SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "''{0}'' : ''{1}'' : Option expected.", new Object[]{getConfigPath(), new Integer(getCurrentLineNumber())}), SVNLogType.DEFAULT);
                    } else {
                        parseOption(is, currentByte);
                    }
            }
        } while (!isEOF);
        getSectionName().setLength(0);
        getOption().setLength(0);
        getValue().setLength(0);
    }

    private int parseSectionName(InputStream is) throws IOException, SVNException {
        getSectionName().setLength(0);
        int currentByte = getc(is);
        while (currentByte != -1 && currentByte != '\n' && currentByte != ']') {
            getSectionName().append((char) currentByte);
            currentByte = getc(is);
        }
        if (currentByte != ']') {
            SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "''{0}'' : ''{1}'' : Section header must end with ']'.", new Object[]{getConfigPath(), new Integer(getCurrentLineNumber())}), SVNLogType.DEFAULT);
        } else {
            currentByte = skipToEndOfLine(is);
            if (currentByte != -1) {
                increaseCurrentLineNumber();
            }
        }
        return currentByte;
    }

    private int parseOption(InputStream is, int firstByte) throws IOException, SVNException {
        getOption().setLength(0);
        int currentByte = firstByte;
        while (currentByte != -1 && currentByte != ':' && currentByte != '=' && currentByte != '\n') {
            getOption().append((char) currentByte);
            currentByte = getc(is);
        }
        if (currentByte != ':' && currentByte != '=') {
            SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "''{0}'' : ''{1}'' : Option must end with ':' or '='.", new Object[]{getConfigPath(), new Integer(getCurrentLineNumber())}), SVNLogType.DEFAULT);
        } else {
            trimBuffer(getOption());
            currentByte = parseValue(is);
        }
        return currentByte;
    }

    private int parseValue(InputStream is) throws IOException, SVNException {
        getValue().setLength(0);
        int currentByte = getc(is);
        boolean isEndOfValue = false;

        while (currentByte != -1 && currentByte != '\n') {
            getValue().append((char) currentByte);
            currentByte = getc(is);
        }
        trimBuffer(getValue());

        while (true) {
            if (currentByte == -1 || isEndOfValue) {
                updateConfiguration();
                break;
            }
            increaseCurrentLineNumber();
            currentByte = skipWhitespace(is);
            switch (currentByte) {
                case'\n':
                    increaseCurrentLineNumber();
                    isEndOfValue = true;
                    continue;
                case-1:
                    isEndOfValue = true;
                    continue;
                default:
                    if (getCurrentLineColumn() == 0) {
                        ungetc((char) currentByte);
                        isEndOfValue = true;
                    } else {
                        //Continuation line found.
                        getValue().append(' ');
                        while (currentByte != -1 && currentByte != '\n') {
                            getValue().append((char) currentByte);
                            currentByte = getc(is);
                        }
                        trimBuffer(getValue());
                    }
            }
        }

        return currentByte;
    }

    private int skipWhitespace(InputStream is) throws IOException {
        resetCurrentLineColumn();
        int currentByte = getc(is);
        while (Character.isWhitespace((char) currentByte)) {
            currentByte = getc(is);
            increaseCurrentLineColumn();
        }
        return currentByte;
    }

    private int skipToEndOfLine(InputStream is) throws IOException {
        int currentByte = getc(is);
        while (currentByte != -1 && currentByte != '\n') {
            currentByte = getc(is);
            resetCurrentLineColumn();
        }
        return currentByte;
    }

    private int getc(InputStream is) throws IOException {
        if (hasUngottenChar()) {
            setHasUngottenChar(false);
            return getUngottenChar();
        }
        return is.read();
    }

    private void ungetc(char ungottenChar) {
        setUngottenChar(ungottenChar);
        setHasUngottenChar(true);
    }

    private void trimBuffer(StringBuffer buffer) {
        while (buffer.length() > 0 && Character.isWhitespace(buffer.charAt(0))) {
            buffer.deleteCharAt(0);
        }
        while (buffer.length() > 0 && Character.isWhitespace(buffer.charAt(buffer.length() - 1))) {
            buffer.deleteCharAt(buffer.length() - 1);
        }
    }

    private void updateConfiguration() throws SVNException {
        if ("groups".equals(getSectionName().toString())) {
            updateGroups();
        } else if ("aliases".equals(getSectionName().toString())) {
            updateAliases();
        } else {
            updateRules();
        }
    }

    private void updateGroups() throws SVNException {
        String groupName = getOption().toString();
        if (getValue().length() == 0) {
            SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "An authz rule refers to group ''{0}'', which is undefined", groupName), SVNLogType.DEFAULT);
        }
        String[] users = COMMA.split(getValue());
        getGroups().put(groupName, users);
    }

    private void updateAliases() throws SVNException {
        String alias = getOption().toString();
        if (getValue().length() == 0) {
            SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "An authz rule refers to alies ''{0}'', which is undefined", alias), SVNLogType.DEFAULT);
        }
        getAliases().put(alias, getValue().toString());
    }

    private void updateRules() throws SVNException {
        int delimeterIndex = getSectionName().indexOf(":");
        String repositoryName = delimeterIndex == -1 ? ANONYMOUS_REPOSITORY : getSectionName().substring(0, delimeterIndex);
        String path = delimeterIndex == -1 ? getSectionName().toString() : getSectionName().substring(delimeterIndex + 1);
        String value = getValue().toString();

        if (getOption().charAt(0) == '~') {
            if (getOption().charAt(1) == '~') {
                SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "Rule ''{0}'' has more than one inversion; double negatives are not permitted.", getOption()), SVNLogType.DEFAULT);
            }
            if (getOption().charAt(1) == '*') {
                SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "Authz rules with match string '~*' are not allowed, because they never match anyone."), SVNLogType.DEFAULT);
            }
        }
        if (getOption().charAt(0) == '$') {
            String token = getOption().substring(1);
            if (!"anonymous".equals(token) && !"authenticated".equals(token)) {
                SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "Unrecognized authz token ''{0}''.", getOption()), SVNLogType.DEFAULT);
            }
        }
        if (value.length() > 0 && !"r".equals(value) && !"rw".equals(value)) {
            SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "The value ''{0}'' in rule ''{1}'' is not allowed in authz rules.", new Object[]{value, getOption()}), SVNLogType.DEFAULT);
        }

        RepositoryAccess repositoryAccess = (RepositoryAccess) getRules().get(repositoryName);
        if (repositoryAccess == null) {
            repositoryAccess = new RepositoryAccess(ANONYMOUS_REPOSITORY.equals(repositoryName));
            getRules().put(repositoryName, repositoryAccess);
        }
        repositoryAccess.addRule(path, getOption().toString(), getValue().toString());
    }

    private void validate() throws SVNException {
        Collection checkedPathes = new ArrayList();
        for (Iterator iterator = getGroups().keySet().iterator(); iterator.hasNext();) {
            String groupName = (String) iterator.next();
            checkedPathes.clear();
            groupWalk(groupName, checkedPathes);
        }

        for (Iterator repositories = getRules().values().iterator(); repositories.hasNext();) {
            RepositoryAccess repositoryAccess = (RepositoryAccess) repositories.next();
            repositoryAccess.validateRules();
        }
    }

    private void groupWalk(String group, Collection checkedGroups) throws SVNException {
        String[] users = (String[]) getGroups().get(group);
        if (users == null) {
            SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "An authz rule refers to group ''{0}'', which is undefined.", group), SVNLogType.DEFAULT);
        }
        for (int i = 0; i < users.length; i++) {
            users[i] = users[i].trim();
            if (users[i].startsWith("@")) {
                String subGroup = users[i].substring("@".length());
                if (checkedGroups.contains(subGroup)) {
                    SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "Circular dependency between groups ''{0}'' and ''{1}''", new Object[]{group, subGroup}), SVNLogType.DEFAULT);
                }
                checkedGroups.add(subGroup);
                groupWalk(subGroup, checkedGroups);
                checkedGroups.remove(subGroup);
            } else if (users[i].startsWith("&")) {
                String alias = users[i].substring("&".length());
                if (!getAliases().keySet().contains(alias)) {
                    SVNErrorManager.error(SVNErrorMessage.create(SVNErrorCode.RA_DAV_INVALID_CONFIG_VALUE, "An authz rule refers to alias ''{0}'', which is undefined.", alias), SVNLogType.DEFAULT);
                }
            }
        }
    }

    private class RepositoryAccess {
        boolean myAnonymous = false;

        private Map myPathRules;
        private PathAccess myGlobalAccess;


        private RepositoryAccess(boolean isAnonymous) {
            myAnonymous = isAnonymous;
        }

        private void addRule(String path, String matchString, String value) {
            if (path.equals("/") || path.length() == 0) {
                myGlobalAccess = myGlobalAccess == null ? new PathAccess() : myGlobalAccess;
                myGlobalAccess.addRule(matchString, value);
            }
            myPathRules = myPathRules == null ? new SVNHashMap() : myPathRules;
            PathAccess pathAccess = (PathAccess) myPathRules.get(path);
            if (pathAccess == null) {
                pathAccess = new PathAccess();
                myPathRules.put(path, pathAccess);
            }
            pathAccess.addRule(matchString, value);
        }

        private void validateRules() throws SVNException {
            if (myGlobalAccess != null) {
                myGlobalAccess.validateRules();
            }
            if (myPathRules != null) {
                for (Iterator iterator = myPathRules.values().iterator(); iterator.hasNext();) {
                    PathAccess pathAccess = (PathAccess) iterator.next();
                    pathAccess.validateRules();
                }
            }
        }

        private boolean checkPathAccess(String path, String user, int requestedAccess) {
            boolean accessGranted = false;
            if (path == null || path.length() == 0 || "/".equals(path)) {
                if (myGlobalAccess != null) {
                    int[] pathAccess = myGlobalAccess.checkAccess(user);
                    if (isAccessDetermined(pathAccess, requestedAccess)) {
                        accessGranted = isAccessGranted(pathAccess, requestedAccess);
                    }
                }
            } else {
                if (myPathRules == null) {
                    return false;
                }
                int[] pathAccess = checkCurrentPath(path, user);
                if (isAccessDetermined(pathAccess, requestedAccess)) {
                    accessGranted = isAccessGranted(pathAccess, requestedAccess);
                } else {
                    String currentPath = path;
                    while (currentPath.length() > 0 && !"/".equals(currentPath)) {
                        currentPath = SVNPathUtil.getAbsolutePath(SVNPathUtil.removeTail(currentPath));
                        pathAccess = checkCurrentPath(currentPath, user);
                        if (isAccessDetermined(pathAccess, requestedAccess)) {
                            accessGranted = isAccessGranted(pathAccess, requestedAccess);
                            break;
                        }
                    }
                }
            }
            if (accessGranted && ((requestedAccess & SVN_ACCESS_RECURSIVE) != SVN_ACCESS_NONE)) {
                accessGranted = checkTreeAccess(user, path, requestedAccess);
            }
            return accessGranted;
        }

        private int[] checkCurrentPath(String currentPath, String user) {
            int[] pathAccess = new int[]{SVN_ACCESS_NONE, SVN_ACCESS_NONE};
            PathAccess currentPathAccess = (PathAccess) myPathRules.get(currentPath);
            if (currentPathAccess != null) {
                pathAccess = currentPathAccess.checkAccess(user);
            } else if (!myAnonymous) {
                RepositoryAccess commonRepositoryAccess = (RepositoryAccess) getRules().get(ANONYMOUS_REPOSITORY);
                if (commonRepositoryAccess != null) {
                    pathAccess = commonRepositoryAccess.checkPathAccess(user, currentPath);
                }
            }
            return pathAccess;
        }

      [...] Wegen Forum-Beschränkung gekürzt

    }
}


Das Problem liegt nach Debugging in der Methode:

Java:
    private void parse(InputStream is) throws IOException, SVNException {
        boolean isEOF = false;
        int currentByte;

        do {
            currentByte = skipWhitespace(is);
            switch (currentByte) {
                case '[':
                    if (getCurrentLineColumn() == 0) {
                        parseSectionName(is);
                    } else {

  [...]

Der Input-Stream wird also Byte-Weise gelesen. Das Problem tritt nun auf, wenn ein Umlaut (öüä) in der Datei als Byte gelesen wird. So wie es scheint kommt die parse()-Methode damit nicht klar.

Ich weiß leider nicht wo ich ansetzen soll.
Das Einfachste wäre, wenn ich der Klasse einen Inputstream vorsetzen könnte, der in UTF-8 kodiert ist. Geht das irgendwie?
Vielleicht könnte ich auch irgendwie die Konvertierung von "int" nach "char" mit UTF-8 Kodierung durchführen.

Zumindest steh ich gerade ziemlich auf den Schlau....

Vielen Dank für jede Hilfe.

Grüße
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Input/Output Problem bei Datei verschiebung mit File.move und Paths.get() Allgemeine Java-Themen 26
V C-Header Datei aus .java File herstellen Allgemeine Java-Themen 10
C Datei in Jar-File wird nicht gefunden Allgemeine Java-Themen 10
buntuswalus Jar-File [Datei nicht gefunden] (im Jar) Allgemeine Java-Themen 15
O .jar File mit ini - Datei??? Allgemeine Java-Themen 3
G externe Properties datei aus Jar File heraus lesen Allgemeine Java-Themen 12
E File in JAR-Datei Allgemeine Java-Themen 8
O Datei Zugriff aus JAR-file Allgemeine Java-Themen 4
G Datei in JAR-File lesen Allgemeine Java-Themen 3
J File: Inhalt des Ordners aus dem die aktuelle Datei ausgefüh Allgemeine Java-Themen 6
K Datei in JAR-File aktualisieren Allgemeine Java-Themen 11
X HTML-Datei aus einem JAR-File laden Allgemeine Java-Themen 2
kodela StatusBar-Anzeigen auch in Log-Datei ausgeben Allgemeine Java-Themen 3
G Maven Projekt JAR-Datei Allgemeine Java-Themen 6
E XML - Datei Darstellung in IntelliJ als Baum Allgemeine Java-Themen 2
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7
J Filenotfoundexception obwohl Datei existiert Allgemeine Java-Themen 6
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
S .exe Datei/Programm auslesen? Allgemeine Java-Themen 2
E Datei verschoben Event Allgemeine Java-Themen 3
D Datei mit "Kohsuke GitHub API" in Repository hochladen Allgemeine Java-Themen 2
S Bookmark HTML Datei einlesen, alle Links erhalten und manche editieren..? (aktuell JSoup) Allgemeine Java-Themen 4
melaniemueller Einzelne Zeile aus einer txt Datei in einem String speichern Allgemeine Java-Themen 12
G JavaFX Maven Projekt als .exe Datei exportieren Allgemeine Java-Themen 10
J (Geplante) Änderungen an einer Datei vorübergehend speichern und anwenden? Allgemeine Java-Themen 12
Neumi5694 Datei komprimiert Allgemeine Java-Themen 6
_user_q Obfuscate einer .jar-Datei mit ProGuard? Allgemeine Java-Themen 2
_user_q Verknüpfung einer .jar-Datei (liegt z. B. auf dem Desktop) im Autostart-Ordner erstellen? Allgemeine Java-Themen 20
E java mithilfe url .jar datei öffnen Allgemeine Java-Themen 9
E Java .exe Datei mit args starten Allgemeine Java-Themen 2
W Bilder werden in App mit Jar-Datei nicht angezeigt Allgemeine Java-Themen 15
Master3000 Java Datei mehrmals einlesen Allgemeine Java-Themen 4
M Excel Datei Erstellen Allgemeine Java-Themen 2
E Input/Output Eigene Datei mit java öffnen Allgemeine Java-Themen 9
R Sonderzeichen aus Datei einlesen und in Datei ausgeben. Allgemeine Java-Themen 17
Tobero Download .jar von github lädt kaputte Datei runter Allgemeine Java-Themen 3
P Bat Datei in Java ausführen Allgemeine Java-Themen 2
S Verwendet Programmiersprache aus Quellcode - Datei ermitteln Allgemeine Java-Themen 6
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
J Jar-Datei ausführen Allgemeine Java-Themen 7
C Outlook msg-Datei Anhänge extrahieren Allgemeine Java-Themen 2
G Datei aus Ordner wählen, ohne den Dateinamen im Pfad angeben zu müssen Allgemeine Java-Themen 4
G Datei senden via Xmodem an Serial-Port Allgemeine Java-Themen 35
C Wav-Datei aus Jar laden? Allgemeine Java-Themen 11
L Best Practice Zip Datei aktualisieren Allgemeine Java-Themen 1
N Speicherort einer Datei im Explorer ändern Allgemeine Java-Themen 8
H Mehrere PNG-Files in einer Datei Allgemeine Java-Themen 9
Gaudimagspam CSV-Datei auslesen in Java Allgemeine Java-Themen 7
S createTempFile erstellt keine temporäre Datei Allgemeine Java-Themen 13
Hatsi09 Jar datei ausführen verursacht NumberFormatException Allgemeine Java-Themen 9
kodela bestimmten Dateityp immer mit jar-Datei öffnen Allgemeine Java-Themen 17
N Arrayliste in eine Datei speichern Allgemeine Java-Themen 4
B .txt Datei erstellen und auslesen bzw. schreiben Allgemeine Java-Themen 6
J Öffnen eine jar-Datei Allgemeine Java-Themen 11
Dann07 MP3 Datei abspielen funktioniert nicht Allgemeine Java-Themen 6
H ArrayListe in CSV Datei speichern Allgemeine Java-Themen 6
O Aus JAR-Datei erstellte EXE-Datei funktioniert nicht Allgemeine Java-Themen 10
N Txt Datei auslesen. Allgemeine Java-Themen 5
B Datei/Ordner auf Server zugreifen/erstellen Allgemeine Java-Themen 2
MiMa Datei verschieben hat einen Fehler?? Allgemeine Java-Themen 20
MiMa Erstellungsdatum einer Datei Allgemeine Java-Themen 10
O xlsx Datei auslesen mit POI Apache liest keine LEERZELLEN Allgemeine Java-Themen 6
P Input/Output entfernte Datei mit Java öffnen ohne Download Allgemeine Java-Themen 5
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
J Hilfe, Jar Datei kann nicht ausgeführt werden Allgemeine Java-Themen 2
M Programm erkennt String aus .txt Datei nicht Allgemeine Java-Themen 3
O Java-Applikation tut in Netbeans, als JAR nicht, wegen Pfadangaben einer benötigten Datei Allgemeine Java-Themen 8
J Fehlermeldung bei Ausführung von .jar-Datei Allgemeine Java-Themen 9
J Die Letzte Zahl aus einer Text datei lesen Allgemeine Java-Themen 8
Elyt Compiler-Fehler Datei kann nicht erstellt werden. Die Syntax für den Dateinamen etc. ist falsch. Allgemeine Java-Themen 2
M Probleme jar datei. Allgemeine Java-Themen 2
F Datei in String-Array einlesen Allgemeine Java-Themen 8
O docx-Datei erzeugung mit DocXStamper funktioniert nicht Allgemeine Java-Themen 2
T Objekt mit String und Int aus TxT Datei erstellen Allgemeine Java-Themen 23
Bluedaishi Prüfen ob Datei noch geöffnet ist Allgemeine Java-Themen 59
I Temp-Datei wird nicht gelöscht Allgemeine Java-Themen 12
D ODS.Datei öffnet leider in Excel Allgemeine Java-Themen 3
L JavaFX JavaFX Chart in Apache Poi Excel Datei Allgemeine Java-Themen 2
D .txt Datei in .jar Datei speichern Allgemeine Java-Themen 3
ralfb1105 Blöcke aus Datei filtern/suchen und in neue Datei schreiben Allgemeine Java-Themen 10
M Daten aus MatLab Datei lesen Allgemeine Java-Themen 8
L SQL Datei in Eclipse erstellen Allgemeine Java-Themen 3
Drachenbauer Wie sorge ich dafür, dass mein Spiel die ini-Datei in der Resourcen-ordner des Projektes schreibt? Allgemeine Java-Themen 5
Trèfle Excel-Datei nicht speicherbar, da von Java zum Bearbeiten gesperrt. Allgemeine Java-Themen 3
N Datei Zeilenweise Einlesen, Versteckte Zeichen Allgemeine Java-Themen 5
L Excel Datei löscht sich selbst im Programm - Java Allgemeine Java-Themen 3
G Workupload datei mit Java Downloaden Allgemeine Java-Themen 6
H .jar Datei startet nicht richtig bei Doppelklick Allgemeine Java-Themen 11
S Hilfe bei dem Auslesen einer YAML Datei Allgemeine Java-Themen 8
M Java Eclipse- Datei exportieren Allgemeine Java-Themen 5
R jar-Datei funktioniert nicht Allgemeine Java-Themen 2
R .txt Datei einlesen und auf der Konsole ausgeben lassen Allgemeine Java-Themen 11
T Jar Datei nicht ausführbar Allgemeine Java-Themen 6
H jar-Datei mit java.exe anstatt mit javaw.exe ausführen Allgemeine Java-Themen 9
S Datei wird nicht gefunden Thread.currentThread().getContextClassLoader().getResourceAsStream() Allgemeine Java-Themen 1
A Steuerung von Spiel aus Datei lesen Allgemeine Java-Themen 0
Javafan01 .sh datei in Java ausführen Allgemeine Java-Themen 1
MiMa Speichern von Programmeinstellungen in Datei Allgemeine Java-Themen 7
J Ordner und Datei Struktur einer War Datei Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben