# Dateipfad als Parameter übergeben



## vaults (9. Jul 2012)

Moin Leute,

ich habe eine Methode (einlesen) geschrieben, welche mir eine Textdatei einliest. Der Dateiname ist in der Methode hart codiert: 


```
public static String einlesen() throws IOException, FileNotFoundException{
FileReader filereader = new FileReader("file.txt");
BufferedReader bufferedreader = new BufferedReader(filereader);
usw....
}
```

Danach folgen noch ein paar Methoden, welche die Datei manipulieren und schließlich seperat speichern.

In der main Methode rufe ich das ganze schlicht durch den Aufruf der Methode auf:


```
einlesen();
```

Nun möchte ich, dass ich über die Konsole den Dateipfad als Parameter übergebe. Ich habe es schon mit Data/File Input Stream versucht, scheint aber irgendwie nicht zu funktionieren. 

Kann mir jemand bitte helfen ?

LG,
Alex


----------



## Schandro (9. Jul 2012)

Die Parameter die über die Kommandozeile übergeben werden stehen im 
	
	
	
	





```
String[] args
```
 Parameter deiner 
	
	
	
	





```
main
```
-Methode. Innerhalb der main-Methode würdest du also bspw. das hier machen:


```
if(args.length>0) {
   einlesen(args[0]);
}
```

Dann müsstest du nurnoch die methode einlesen so anpassen das sie den Dateinamen als Parameter erwartet.


----------



## Poltergeist (9. Jul 2012)

Vaults
wie Schandro sagt du kannst via args[] oder

```
public static String einlesen(String path) throws IOException, FileNotFoundException{
     FileReader filereader = new FileReader(path+File.separatorChar+"file.txt");
     BufferedReader bufferedreader = new BufferedReader(filereader);
     usw....
}
```
du kannst auch den absolute path durch wie folgt selbst holen.

```
public String absPath(String filename) {
    return (new File("").getAbsolutePath())+File.separatorChar+filename;
}
```
Sorry for my German.


----------



## vaults (9. Jul 2012)

Moin Leute,

ich weiß zwar nicht warum, aber jetzt urplötzlich macht er es einfach, auch ohne FileStream und getPath. 

Ich habe einfach die Methode einlesen in der Main Methode gesetzt: 

```
einlesen(args[0])
```

und die Methode selber abgeändert: 

```
public static String einlesen(String arg) throws IOException, FileNotFoundException{
FileReader filereader = new FileReader(arg); // Hier steht sonst hart der Dateiname z.B file.txt
BufferedReader bufferedreader = new BufferedReader(filereader);
```

Wenn ich jetzt in der Konsole eine beliebige Datei übergebe klappt es. 

Danke und LG,
Alex


----------

