Input/Output Arbeiten mit dem JFileChooser

f10

Aktives Mitglied
Hallo zusammen,

Ich habe mal eine Frage. Mit JFileChooser kann ich mir ja eine Datei mit einem Dialog auswählen und deren Pfad mit getSelectedFile().getPath() in einer Variable speichern. Nun wie komme ich aber direkt an diese Datei heran. Wie kann ich eine neue Datei erstellen, in der genau der gleiche Inhalt steht und ich diesen gegebenenfalls sogar noch veraendern kann?

Wenn ich File datei = new File(fc.getSelectedFile().getPath()) eine neue Datei erstelle, wird meine alte ja überschrieben, seh ich das richtig? Wie kann ich also noch bevor das geschieht diverse Zeilen in der Datei aendern?

Kann ich mit File ausgabe = new File("C:/ausgabe.txt") eine neue Textdatei erstellen und darein zeilenweise aus einer Textdatei 'einagbe.txt' die Zeilen schreiben. Wie stelle ich das an? Wie erhalte ich Zugriff auf die einzelnen Zeilen?


Danke.

Gruß
f10
 
Wenn ich File datei = new File(fc.getSelectedFile().getPath()) eine neue Datei erstelle, wird meine alte ja überschrieben, seh ich das richtig?

Nein, absolut falsch.
Mit dem JFileChooser kannst du lediglich Dateien und Ordner auswählen (so wie es der Name auch verrät), mehr nicht. Das ist nur ein grafisches Hilfsmittel wenn du so willst, mit dem kann man nichts ändern. Ein File-Objekt repräsentiert ebenfalls nur eine Pfad zu einer Datei oder einem Ordner, auch dieses Objekt alleine kann erst einmal nichts an der Datei verändern. Mit new File(...) erstellst du also keine neue Datei!

Galileo Computing :: Java ist auch eine Insel – 17 Datenströme :rtfm:
 
Ich habe mal eine Frage. Mit JFileChooser kann ich mir ja eine Datei mit einem Dialog auswählen und deren Pfad mit getSelectedFile().getPath() in einer Variable speichern. Nun wie komme ich aber direkt an diese Datei heran. Wie kann ich eine neue Datei erstellen, in der genau der gleiche Inhalt steht und ich diesen gegebenenfalls sogar noch veraendern kann?

Gleicher Inhalt? Einfach Inhalt in eine andere Datei kopieren.

Wenn ich File datei = new File(fc.getSelectedFile().getPath()) eine neue Datei erstelle, wird meine alte ja überschrieben, seh ich das richtig? Wie kann ich also noch bevor das geschieht diverse Zeilen in der Datei aendern?

Mit new File() erzeugst Du nur ein File-Objekt, noch keine neue Datei.

Kann ich mit File ausgabe = new File("C:/ausgabe.txt") eine neue Textdatei erstellen und darein zeilenweise aus einer Textdatei 'einagbe.txt' die Zeilen schreiben. Wie stelle ich das an? Wie erhalte ich Zugriff auf die einzelnen Zeilen?

Nein, für den Inhalt der Datei benötigst Du einen Stream oder einen Reader/Writer.
 
Java:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

public class TextReadWrite
{
    public static void main(
            final String[] args )
    throws IOException
    {
        try ( BufferedReader reader =
                new BufferedReader(
                        new FileReader( "C:/eingabe.txt" ) ) )
        {
            try ( Writer writer =
                    new FileWriter( "C:/ausgabe.txt" ) )
            {
                // mit diesem Merker das ungewollte Anhängen eines Zeilenumbruchs an der letzten Zeile vermeiden
                boolean isFirstLine = true;
                
                String lineStr;
                while ( ( lineStr = reader.readLine() ) != null )
                {
                    if ( isFirstLine )
                    {
                        isFirstLine = false;
                    }
                    else
                    {
                        // Windows-Zeilenumbruch
                        writer.write( "\r\n" );
                    }

                    writer.write( lineStr );
                }
            }
        }
    }
}
 

Zurück
Oben