brauche hilfe mit neuen Scanner Klasse

danke hat geklappt

@kleinis_1 leider sind meine Java Kenntisse noch sehr gering, lerne erst seit 1 Woche Java :)

kann mir noch jemand erklären was throws IOExeption macht? Und warum wenn ich es entferne das Programm nicht mehr geht, ich dachte das fängt Fehler ab oder so was in der art.

Danke im Voraus
 
Ich denke, gerade weil du Anfänger bist solltest du lernen mit solchen Beispielen umzugehen weil die Dir immer wieder begegnen werden. Die Kunst ist die Lösung an sein eigenes Problem anzupassen.
Da lernst du am meisten bei.

IOException heisst Eingabe-Ausgabe Fehler. Es kann ja sein das die von Dir angegebene Datei nicht vorhanden ist oder nicht geöffnet werden kann, da Java diese Möglichkeit in Betracht zieht, verlangt es von Dir den eventuell auftretenden Fehler zu behandeln, is doch eine prima Sache, kann man mit solchen Fehlern schon mal nicht mehr überrascht werden.

Also, war bestimmt nicht böse gemeint als ich geschrieben habe das man nicht alles 100% ig vorgekaut bekommen sollte.

Grüsse
Andi
 
thx nochmal :)

so wieder eine Frage hehe

ich habe das Programm jetzt erweitert

Code:
import java.io.File; 
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
 
public class text2
{
public static void main(String args[])throws IOException
{
System.out.println("Adressbuch Version 1.0");
Scanner name = new Scanner(System.in);
System.out.print("Name: ");
String s_name = name.next();
try {
 
FileWriter fw = new FileWriter("c:\\text2.txt", true);
fw.write(s_name);
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
 
Scanner vorname = new Scanner(System.in);
System.out.print("Vorname: ");
String s_vorname = name.next();
try {
 
FileWriter fw = new FileWriter("c:\\text2.txt", true);
fw.write("\t"+s_vorname+"\n");
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
 
 
ArrayList<String> lese_text = new ArrayList<String>();
Scanner inhalt = new Scanner(new File("c:\\text2.txt"));
 
while(inhalt.hasNext())
{
lese_text.add(inhalt.nextLine());
}
for(String zeile : lese_text)
{
System.out.println(zeile);
}
}
}

Jetzt kann man hier Name und Vorname eingeben, und jetzt die Frage, kann man das kurzer schreiben :

Code:
Scanner name = new Scanner(System.in);
System.out.print("Name: ");
String s_name = name.next();
try {
 
FileWriter fw = new FileWriter("c:\\text2.txt", true);
fw.write(s_name);
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
 
Scanner vorname = new Scanner(System.in);
System.out.print("Vorname: ");
String s_vorname = name.next();
try {
 
FileWriter fw = new FileWriter("c:\\text2.txt", true);
fw.write("\t"+s_vorname+"\n");
fw.close();
} catch (IOException e) {
e.printStackTrace();
}

Weil wenn ich noch Adresse und Telefonnummer und so weiter einfüge, wird das sehr lang, wenn ich so schreibe.
Ich dachte an solche Variante:

Code:
Scanner name = new Scanner(System.in);
System.out.print("Name: ");
String s_name = name.next();
System.out.print("Vorname: ");
String s_vorname = vorname.next();
try {
 
FileWriter fw = new FileWriter("c:\\text2.txt", true);
fw.write(s_name+s_vorname);
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
aber das geht nicht.
 
Zuletzt bearbeitet:
du hast doch nur den Scanner 'name' -----> keinen Scanner 'vorname'
würde ich aber alles mit dem selben machen.
String vorname = name.next();
Kannst dem Scanner ja ne allgemeinere Bezeichnung geben.
 
ja sorry habe mich verschrieben

ich meinte so


Code:
Scanner name = new Scanner(System.in);
System.out.print("Name: ");
String s_name = name.next();
Scanner vorname = new Scanner(System.in);
System.out.print("Vorname: ");
String s_vorname = vorname.next();
try {
 
FileWriter fw = new FileWriter("c:\\text2.txt", true);
fw.write(s_name+s_vorname);
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
aber wenn ich so mache, überspringt er Name und geht sofort zu Vorname und ich kann nur einmal was eingeben

wenn ich dem Scanner Allgemeinbezeichnung gebe, geht das auch nicht, zeigt Fehler



EDIT: ES GEHT lol, wahrscheinlich habe ich in dem Programm vorname scanner wirklich vergessen, danke :-´)
 
Zuletzt bearbeitet:
Scanner scan = new Scanner(System.in);
System.out.print("Name: ");
String s_name = scan.next();
//Scanner vorname = new Scanner(System.in);
System.out.print("Vorname: ");
String s_vorname = scan.next();
try {

FileWriter fw = new FileWriter("c:\\text2.txt", true);
fw.write(s_name+s_vorname);
fw.close();
} catch (IOException e) {
e.printStackTrace();
}

So klappts bei mir einwandfrei.
 
ja bei mir auch ^^ habe oben meine Nachricht editiert :) thx

hehe

ich werde dann das Programm weiter verbessern :) und werde mich bestimmt bald wieder melden, hehe. Ok danke nochmal.
 
Hallo!

Schau mal hier:
Code:
 package de.tutorials;
  
  import java.util.Scanner;
  
  public class ScannerExample {
  
  	/**
  	 * @param args
  	 */
  	public static void main(String[] args) {
  		Scanner scanner = new Scanner(System.in);
  		System.out.print("Name:");
  		String name = scanner.next();
  		System.out.print("Vorname:");
  		String vorname = scanner.next();
  
  		System.out.printf("%s %s\n",name,vorname);
  	}
  
  }

Gruß Tom
 
Zurück