# Java Anfängerfrage: Stdin?



## Don_Pazo (8. Mai 2006)

Hallo,
ich bin Anfänger unter Java. Ich lese gerade einen Tutorial und da stand folgendes Beispiel:


```
import java.io.*;

class Multiply
{
    public static void main(String[] args) throws IOException
    {
        System.out.println("Bitte ersten Faktor eingeben:");
        int m1 = Stdin.readInt();
        System.out.println("Bitte zweiten Faktor eingeben:");
        int m2 = Stdin.readInt();
        System.out.println(m1 + "x" + m2 + "=" + m1*m2);
    }
}
```

Ich habe es in meinen Eclipse (unter Windows ) eingetippt. Dann kommt aber die Fehlermeldung:


> Exception in thread "main" java.lang.Error: Unaufgelöstes Kompilierungsproblem:
> Stdin kann nicht aufgelöst werden
> 
> at JVariablenLernen.main(JVariablenLernen.java:6)



Vielleicht bin ich zu blöd zum tippen )))
Könnte mir bitte jemand verratten, wo das Fehler liegt ?


----------



## flashray (8. Mai 2006)

Hallo,

ich glaube hier fehlt entweder eine Klasse oder Objekt "Stdin".


Vg Erdal


----------



## Don_Pazo (8. Mai 2006)

Ich verstehe nicht was du meinst!
Das ist alles was da stand.


----------



## gello (8. Mai 2006)

Hallo,

sieht so aus, als wäre das Stdin ein Objekt der Klasse DataInputStream.
Wenn du nun als erste Zeile in deiner Main-Methode folgendes einfügst, sollte es funktionieren:


```
DataInputStream Stdin = new DataInputStream(System.in);
```



mfg
gello


----------



## DerKleineVomSee (8. Mai 2006)

Hi, 
falls du Java 1.6 beta nutzen solltest, kannst du zum einlesen von der Konsole auch folgenden Funktion nutzen.


```
System.console().readLine();
```


----------



## TommyMo (11. Mai 2006)

Hi!

du kannst natürlich auch folgendes machen, wenn nicht J1.6 verwendet wird. 


```
public static void main( String[] args ) {
		byte[] buffer = new byte[255];
		int read = 0; 
		
		try {
			read = System.in.read( buffer );
		} catch (IOException e) {
			e.printStackTrace();
		}

		System.out.println( new String( buffer, 0, read ) );
}
```

der bytearray ist der buffer, wie der name schon sagt, in dem die eingaben gespeichert wreden. read ist die anzahl der eingegebenen zeichen (die größe des buffers muss ja nicht voll ausgeschöpft werden). ist die eingabe mittels enter bestätigt worden, kannst du den buffer, startend bei 0 und endend an der position read, einfach mit System.out ausgeben. 

hoffe das hilft dir weiter. 

Gruß 
TOM


----------

