String über Kommandozeile eingeben

Sponny

Lt. Commander
Registriert
März 2008
Beiträge
1.046
JAVA

Hallo liebe Community,

wenn ich meinen Code mit untenstehenden Parametern aufrufe, hängt das Programm anscheinend irgendwie in der while-schleife.

Da es mein erstes Programm mit io ist, weiß ich nicht sicher, ob ich das auch mit dem einlesen richtig gemacht habe.
Die methode soll den einzulesenden Text durch die methode split ändern.

Kann mir jemand sagen wo mein fehler liegt?

Code:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.util.Arrays;
import java.util.regex.Pattern;

public class Message {

	public void decode(String Text) {
		String[] arr = Text.split("[^a-zA-Z0-9]");
		for (int i = 0; i < arr.length; i++) {
			  System.out.println(arr[i]);
			}
	}

	public static void main(String[] args) {

		Message c = new Message();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String line = null;

		while ((line = br.readLine()) != null) {
			if (args[0].equals("d")) {
				c.decode(line);
			}
		}
	}

}

Kommandozeilen aufruf: d < cipher.txt

Vielen Dank im Voraus.
 
Zuletzt bearbeitet:
zeig doch mal, was die while-schleife ausgibt. bzw. was da hängt.

also ich frage mich gerade, ob der BufferedReader automatisch zeile für zeile weiterliest oder ohne code nur die erste zeile liest und die ist natürlich nie 0, wenn text drin steht. daher kann die while-schleife auch nicht weitergehen.


wenn es sich nur um eine einzige textzeile handelt, braucht es auch keinen buffered reader meiner meinung nach
 
Also, wenn ich gleich als erstes in der while-schleife ein System.out.println mache, wird das nicht ausgegeben.
Der Text besteht schon aus mehreren Zeilen.
 
Zurück
Oben