# IOTools funktionieren nicht



## Marra1996 (3. Jan 2013)

Hallo zusammen.
Ich bin recht neu in der Welt von Java und habe mir ein anfänger Buch gekauft damit ich besser reinkomme.
Nun steht im Buch folgender Code:

```
import static Prog1Tools.IOTools:*;

public class lern1 {
	public static void main(String[] args) {
		int i, j, k;
		double d;
		char c;
		boolean b;
		//int Eingabe ohne Promt
		i = readInteger();
		
		//int Eingame mit Promt
		System.out.print("j = ");
		j = readInteger();
		
		//vereinfachte int Eingabe mit Promt
		k = readInteger("k = ");
		
		//double-eingabe mit Promt
		d = readDouble("d = ");
		
		//char-eingabe mit Promt
		c = readChar("c = ");
		
		//boolean-Eingabe mit Promt
		b = readBoolean("b = ");
		
		//Testausgaben
		System.out.println("i = " + i);
		System.out.println("j = " + j);
		System.out.println("k = " + k);
		System.out.println("d = " + d);
		System.out.println("c = " + c);
		System.out.println("b = " + b);
	}

}
```

Aber die Konsole gibt folgendes aus:


```
mk:test1 realmarra$ javac lern1.java
lern1.java:1: ';' expected
import static Prog1Tools.IOTools:*;
                                ^
1 error
mk:test1 realmarra$ javac lern1.java
lern1.java:1: package Prog1Tools does not exist
import static Prog1Tools.IOTools.*;
                        ^
lern1.java:10: cannot find symbol
symbol  : method readInteger()
location: class lern1
		i = readInteger();
		    ^
lern1.java:14: cannot find symbol
symbol  : method readInteger()
location: class lern1
		j = readInteger();
		    ^
lern1.java:17: cannot find symbol
symbol  : method readInteger(java.lang.String)
location: class lern1
		k = readInteger("k = ");
		    ^
lern1.java:20: cannot find symbol
symbol  : method readDouble(java.lang.String)
location: class lern1
		d = readDouble("d = ");
		    ^
lern1.java:23: cannot find symbol
symbol  : method readChar(java.lang.String)
location: class lern1
		c = readChar("c = ");
		    ^
lern1.java:26: cannot find symbol
symbol  : method readBoolean(java.lang.String)
location: class lern1
		b = readBoolean("b = ");
		    ^
7 errors
```



Ich verstehe nicht wieso?
Im Buch steht dass das so funktionieren sollte.
Kann mir da einer Helfen?
Ich benutze Mac OS 10.6.8
Vielen Dank im Vorraus


----------



## Marcinek (3. Jan 2013)

IOTools sind nicht JavaStandard.

Du benötigst vermutlich eine JAR Datei, die diese enthält.

Er kann sie eben nicht finden:  *package Prog1Tools does not exist*


----------



## Bernd Hohmann (3. Jan 2013)

Da stimmt was nicht mit dem Import: statt ":" muss da ein "." hin.

Eigentlich sollte der Compiler das schon anjammern.

Bernd


----------



## Marra1996 (3. Jan 2013)

Das : statt . war ein fehler meinerseits, der ist behoben, muss ich noch schnell ändern.
Aber ich weiss jetzt nicht wie ich weiter vorgehen soll. Ich hab keinen Editor oder so, ich benutze den TextEditor.. Wie bekomme ich da die IOTools da jetzt "rein"?


----------



## SlaterB (3. Jan 2013)

wer hat dir denn in den Kopf gesetzt, dass es sowas wie IOTools überhaupt gibt?
eine reale Person in deinem Leben, etwa ein Lehrer? wie sieht es dann mit Hinweisen und Material aus, 
ist z.B. die Klasse als Library zur Verfügung gestellt?

edit:
> Nun steht im Buch folgender Code:

ok, das ist natürlich ein GAU, Buch sofort verbrennen 
oder steht dort nichts an Anleitung dazu?

seriöse Bücher wie
Galileo Computing :: Java ist auch eine Insel - index
kommen jedenfalls ohne IOTools aus, vielleicht die bessere Alternative


----------



## Marra1996 (4. Jan 2013)

Ja, aber ich hab das Buch jetzt und jetz will ich damit auch was anfangen können...
vondemher hilft mir das jetzt nicht unbedingt viel weiter. und Geld für noch son schinken habe ich nicht...


----------



## maki (4. Jan 2013)

Marra1996 hat gesagt.:


> Und inwiefern hilft mir das jetzt weiter?


Einfach nochmal lesen, das wird schon


----------



## Marco13 (4. Jan 2013)

Ja, die berühmt-berüchtigten IO-Hilfklassen... Für einen Kurs in der Schule 1995 mögen die noch ihre Berechtigung gehabt haben, aber seit Java 1.5 sollte es ein Scanner (Java Platform SE 6) doch tun. Ansonsten vielleicht mal der erste Ergebnis einer Websuche nach "Prog1Tools IOTools" ansehen... IOTools Einführung, Installation, Anwendung


----------



## Marra1996 (4. Jan 2013)

Witzig, von der seite (Grundkurs Programmieren in Java) ist auch das Buch was ich habe.
ich hab mal durchgeblättert, die IOTools werden durchs ganze Buch weiterhin verwendet.


----------



## Marco13 (4. Jan 2013)

Ja, was auch immer damit erreicht werden soll ... erinnert ein bißchen an ein Gerät, das man nicht mit USB sondern nur mit einem MyBrand©-Kabel an den PC anschließen kannn :bahnhof:

Angeblich soll das Buch ja (abgesehen davon ) ganz OK sein ???:L aber das ist nur Hörensagen. 

Du kannst die IOTools ja installieren, die werden ja wohl nicht der eigentliche _Lerninhalt_ sein, sondern nur dem Zweck dienen, mal schnell an der Konsole was eingeben zu können ... aber du solltest dir zumindest an einem Beispiel ansehen, wie man die wichtigsten Funktionen (readInteger etc.) stattdessen mit einem Scanner machen könnte. Danach kannst du diese Lib als mysteriöse Kuriosität einfach hinnehmen.


----------



## pro2 (4. Jan 2013)

Marra1996 hat gesagt.:


> Witzig, von der seite (Grundkurs Programmieren in Java) ist auch das Buch was ich habe.
> ich hab mal durchgeblättert, die IOTools werden durchs ganze Buch weiterhin verwendet.



Das Buch ist gar nicht schlecht, hab mal durchgeblättert, da es auch bei uns in der Bibliothek liegt und mir das Kapitel zur Netzwerk-Programmierung durchgelesen. Und ich kann jetzt in dem Fall nur über das E-Book sprechen, aber: http://www.abload.de/img/captureiruyj.png


----------



## Marco13 (4. Jan 2013)

Ich gehe eigentlich davon aus, dass diese IOTools wirklich nur entwickelt wurden, als es den Scanner noch nicht gab (damals waren Konsoleneingaben AFAIR wirklich ziemlich krampfig), und sie einfach beibehalten wurden (vielleicht schon aus dem pragmatischen Grund: die Beispielprogramme nicht aktualisieren zu müssen ). Wie gesagt, solange die nicht das Kernthema sind, und wenn man weiß, wie man das gleiche mit einem Scanner machen würde, braucht man sich da wohl nicht sooo viele Gedanken drum zu machen.


----------



## Marra1996 (4. Jan 2013)

Marco13 hat gesagt.:


> aber du solltest dir zumindest an einem Beispiel ansehen, wie man die wichtigsten Funktionen (readInteger etc.) stattdessen mit einem Scanner machen könnte. Danach kannst du diese Lib als mysteriöse Kuriosität einfach hinnehmen.



Gennau das habe ich ja, in einem "Workshop" auf YouTube da hieß es auch Scanner, allerdings ist der mittlerweile offline, und jetzt wo ich das Buch schon habe..
naja. Ich versuche auf jedenfall mal die IOTools trozdem zu installieren, allerdings finde ich den Ordner der auf der Seite beschrieben wird nicht..
Wenn alles scheitert versuche ich einfach mal die entsprechenden Codezeilen mit einem Scanner zu ersetzen..


----------



## Marra1996 (4. Jan 2013)

So ich hab das Programm jetzt mal umgeschrieben, hoffentlich lassen sich die anderen Testprogramme auch umschreiben ohne grosse Probleme.
Danke schön an alle die geholfen haben.


```
import java.util.Scanner;

public class lern1 {
  public static void main (String[] args) {  
    int     i, j, k;
    double  d;
    char    c;
    boolean b;

    // int-Eingabe ohne Prompt (ohne vorherige Ausgabe)
    Scanner sc = new Scanner(System.in);
    i = sc.nextInt();

    // int-Eingabe mit Prompt
    System.out.println("Zahl eingeben");
    Scanner sc1 = new Scanner(System.in);
    j = sc1.nextInt();
                              
    // F4IL wegen nix vereinfacht
    System.out.println("Zahl eingeben");
    Scanner sc2 = new Scanner(System.in);
    k = sc1.nextInt();

    // double-Eingabe mit Prompt
    System.out.println("Zahl eingeben");
    Scanner sc3 = new Scanner(System.in);
    d = sc1.nextDouble();
    
    // char-Eingabe mit Prompt
    System.out.println("Buchstaben eingeben");
    Scanner sc4 = new Scanner(System.in);
    c = sc.next().charAt(0);

    // boolean-Eingabe mit Prompt
    System.out.println("true oder false eingeben");
    Scanner sc5 = new Scanner(System.in);
    b = sc.nextBoolean();
    
    // Testausgaben
    System.out.println("i = " + i);
    System.out.println("j = " + j);
    System.out.println("k = " + k);
    System.out.println("d = " + d);
    System.out.println("c = " + c);
    System.out.println("b = " + b);
  }
}
```


----------



## Marco13 (4. Jan 2013)

Hm... nicht tausende von Scannern erstellen. EIN

```
private static final Scanner scanner = new Scanner(System.in);
```
ganz oben in der Klasse sollte reichen...


----------

