Mit JFileChooser um eine Datei Lesen zu Namen

Ich bin mit dem Datei-Eingabe-stream-input-Datei


String filename="D:\\abc.txt";
File file = new File(filename);

Es funktioniert gut bis jetzt. Jetzt will ich zur Eingabe des Dateinamens mit JFileChooser und dann das gleiche tun. Aber JFileChooser gibt eine Zeichenfolge zurück, wie dies D:\abc.txt. Mein code ist wie folgt


public static String fileChose()
{
    JFileChooser fc= new JFileChooser();
    int ret = fc.showOpenDialog(null);

    if (ret== JFileChooser.APPROVE_OPTION) 
    {
        File file = fc.getSelectedFile();
        String filename= file.getAbsolutePath();
        return filename;
    }
    else
        return null;
}

Das problem ist, dass die Dateinamen getrennt durch \\ statt \. Kann ich nicht direkt eingeben, die mit dem Namen von JFileChooser in einer solchen Art und Weise, um direkt zu benutzen es als argument in


File file = new File(Classname.fileChose());
  • Das von Ihnen angegebene string "D:\\abc.txt" die gleiche Zeichenfolge wie die "D:\abc.txt" string, der von der Methode zurückgegeben, weil ` is an escape character so \` im code ist tatsächlich `. Mit dieser sagte, ich habe Probleme mit dem erkennenden, was deine Frage eigentlich ist.
  • Ich verstehe, dass es ein escape-Zeichen. Aber das argument in der Datei erfordert die Verwendung von \ \ - format anstatt \. Deshalb möchte ich wissen, ob der Pfad in diesem format können direkt acheved oder nicht ?
  • Ich Stimme mit Vulcan, aber noch wichtiger ist, warum nicht ändern Sie die Methode zum zurückgeben der File selbst, statt den Dateinamen ? wie File file = fc.getSelectedFile(); return file; sind Sie sowieso, so dass es eine Datei
  • Ok.. ich denke, dass Sie eine bessere Lösung. Danke..
  • Sie sind herzlich willkommen 🙂
  • Das argument in der Datei nicht erforderlich "\\ format" an alle. In Windows \ die Datei mit Trennzeichen, so brauchen Sie nur ein, nicht zwei. Mit \\ ist notwendig, um den string-Deklaration Seite, weil die "\\" ist nicht wörtlich zwei umgekehrte Schrägstriche, es wird kompiliert, um einen einzelnen backslash.
  • Sie sollten immer mit "/" als Datei-separator. Es funktioniert auf Windows-und UNIX-Varianten. Mit "\\" das Programm funktioniert nur in Windows (Sie sind mit Java auf einmal schreiben überall laufen, oder?). Aber die Lösung mit einem File statt einer String ist die beste.

InformationsquelleAutor OneMoreError | 2012-09-21
Schreibe einen Kommentar