Umleiten

Pherseus

Erfahrenes Mitglied
Hi,

unter Linux kann ich ja auf der Konsole folgendermassen mein Programm starten:

java bla < data.dat

In meiner Mainfunction hab ich ja dann etwas mit String[] args stehen. Denke mal, dass dort dann der inhalt der Datei data.dat drinnen stehen wird. Wenn ich nun aber versuche mit args[....] darauf zuzugreifen, klappt dies nicht wirklich. Muss ich vorher noch was anderes machen oder geht das mit dem Umleiten gar nicht und das String[] args ist für etwas anderes?
 
Guck doch einfach was drin steht :)

Java:
public static void main(String []args){
   for(int i = 0; i < args.length; i++){
       System.out.println(args[i]);
   }
}
 
Hm ja das ding ist, wenn ich es so mache

java bla 11 12 ....

dann geht es.

Aber ich hab ja die Zahlen in einer Datei stehen. Und

java bla < daten.dat

klappt nicht. Gibt es da noch einen anderen Weg?
 
Wäre es nicht mindestens genau so einfach nur den Dateinamen zu übergeben?

Dann rufst du das Programm halt mit "java daten.dat" auf und greifst mit args[0] auf den Dateinamen zu.

Java:
import java.io.*;

public class FileReadExample {

	public static void main(String args[]) {

		if(args.length <= 0) {

			System.out.println("java FileReadExample filename");
			System.exit(0);
		}


		try {

			File file = new File(args[0]);
			BufferedReader bf = new BufferedReader(new FileReader(file));

			String s;

			while((s = bf.readLine()) != null) {

				System.out.println(s);
			}

		} catch(IOException e) {

			e.printStackTrace();
		}
	}
}
 
Zuletzt bearbeitet von einem Moderator:
Zurück