Erste Schritte Übung zu Exceptions

frauschramm

Mitglied
Ich bin ein absoluter Neuling was Java angeht und quasi als Quereinsteiger ins erste Jahr in der Berufsschule mit Java begonnen. Ich mache eine Ausbildung als Anwendungsentwickler, habe aber im Betrieb nichts mit Java zu tun.
da ich jetzt erst ins Schuljahr starte sind mir meine Mitschüler natürlich etwas voraus, wir sind im moment beim Thema Exceptions und haben Fragen dazu bekommen die wir lösen sollen.

Ich hoffe ihr könnte mir ein bisschen Starthilfe geben ich habe wirklich gar keine Ahnung von Java und folgende AUfgabe vor mir:

"Schreiben Sie eine Methode, die 2 Integer Zahlen aus einer Datei einliest und die erste Zahl durch die zweite Zahl teilt. Der Dateinahme soll von der Konsole eingelesen werden. Machen Sie keine fehlerbehnadlung sondern leiten Sie die IO Exceptions einfach weiter. Was passiert, wenn die Datei nicht existiert?"
 

Volvagia

Top Contributor
Entweder du musst nach einen Dateinamen fragen und im über System.in lesen, oder er wird als Programmargument übergeben. Genau verstehe ich es auch nicht.

Der Vorgang ist ja allgemein nicht schwer:

Dateinamen besorgen (Argument oder System.in)
Inhalt lesen
Gelesenes auf Zahlen prüfen
String zu Int parsen
Zweite Zahl auf 0 überprüfen
Dividieren
Vermutlich ausgeben
 

frauschramm

Mitglied
Entweder du musst nach einen Dateinamen fragen und im über System.in lesen, oder er wird als Programmargument übergeben. Genau verstehe ich es auch nicht.

Der Vorgang ist ja allgemein nicht schwer:

Dateinamen besorgen (Argument oder System.in)
Inhalt lesen
Gelesenes auf Zahlen prüfen
String zu Int parsen
Zweite Zahl auf 0 überprüfen
Dividieren
Vermutlich ausgeben


Ja in der Theorie hört sich das toll an aber wie setzt man das in Java Syntax um?
Ich habe mal ausprobiert, Feedback und Hilfe sind gerne erwünscht!



Java:
public class Dateieinfuegen {

// Dies ist das Array, in das die Zahlen gespeichert werden
static String[][] array = new String[10][];

public static void main (String[] args) {

	importFile(); 

	System.out.println("Kontrolle: "); 
	printArray();
 

Volvagia

Top Contributor
Warum ein 2D-Array? Zwar kannst du die beiden gelesen Zahlen in ein 1D-Array speichern, da du nur einzelne Zahlen und keine Zahlenpaare einliest. Da man aber immer nur 2 Zahlen auf einmal dividieren kann würde ich 2 einzelne Variablen vorziehen.

Den Dateinamen über das Argument zu bekommen ist ja nicht schwer, der wird der main sowieso übergeben. Du musst nur prüfen, ob überhaupt einer angegeben war.

Wo genau happert es jetzt?
 

frauschramm

Mitglied
Warum ein 2D-Array? Zwar kannst du die beiden gelesen Zahlen in ein 1D-Array speichern, da du nur einzelne Zahlen und keine Zahlenpaare einliest. Da man aber immer nur 2 Zahlen auf einmal dividieren kann würde ich 2 einzelne Variablen vorziehen.

Den Dateinamen über das Argument zu bekommen ist ja nicht schwer, der wird der main sowieso übergeben. Du musst nur prüfen, ob überhaupt einer angegeben war.

Wo genau happert es jetzt?


ich glaube ich muss weiter vorne anfangen, ich möchte jetzt erstmal 2 Zahlen aus einer Datei einlesen, wie funktioniert das denn genau mit der Pfadangabe bei Bluej, wo muss ich die Datei ablegen?
 

frauschramm

Mitglied
Ok, das mit der Datei einlesen hab ich mit Bluej hinbekommen, wie kann ich jetzt 2 Zahlen aus der Datei auslesen und diese Zahlen jeweils einer Variable übergeben?



Java:
import java.io.*;
 
class ReadFile1
{
  public static void main(String[] args) throws IOException
  {
    FileReader fr = new FileReader("test.txt");
    BufferedReader br = new BufferedReader(fr);
 
    String zeile1 = br.readLine();
    System.out.println(zeile1);
    String zeile2 = br.readLine();
    System.out.println(zeile2);
    String zeile3 = br.readLine();
    System.out.println(zeile3);
 
    br.close();
  }
}
 

Volvagia

Top Contributor
Kommt drauf an, wie die Zahlen in der Datei stehen.
Wenn sie untereinander stehen liest du sie ja bereits aus.

Code:
[ ] Dateinamen besorgen (Argument oder System.in)
[x] Inhalt lesen
[ ] Gelesenes auf Zahlen prüfen
[ ] String zu int parsen
[ ] Zweite Zahl auf 0 überprüfen
[ ] Dividieren
[ ] Vermutlich ausgeben
 

frauschramm

Mitglied
Kommt drauf an, wie die Zahlen in der Datei stehen.
Wenn sie untereinander stehen liest du sie ja bereits aus.

Code:
[ ] Dateinamen besorgen (Argument oder System.in)
[x] Inhalt lesen
[ ] Gelesenes auf Zahlen prüfen
[ ] String zu int parsen
[ ] Zweite Zahl auf 0 überprüfen
[ ] Dividieren
[ ] Vermutlich ausgeben


Auf Zahlen prüfen müsste hiermit gehen:

Java:
string.matches("[0-9]+");

aber wie kann ich das konkret in meinem Code machen?
 

langhaar!

Bekanntes Mitglied
In der Aufgabe steht, dass keine Fehlerbehandlung durchgeführt werden soll. Demnach würde ich auch nicht prüfen, sondern einfach den eingelesenen Text einer in Variablen zuweisen.
Schau dir dazu Integer.parseInt(String s) an.
 

frauschramm

Mitglied
In der Aufgabe steht, dass keine Fehlerbehandlung durchgeführt werden soll. Demnach würde ich auch nicht prüfen, sondern einfach den eingelesenen Text einer in Variablen zuweisen.
Schau dir dazu Integer.parseInt(String s) an.

Kannst du mir weiterhelfen, es scheint leider nicht ganz zu funktionieren.


Java:
import java.io.*;
 
class ReadFile1
{
  public static void main(String[] args) throws IOException
  {
    FileReader fr = new FileReader("test.txt");
    BufferedReader br = new BufferedReader(fr);
 
    String zeile1 = br.readLine();
    System.out.println(zeile1);
    String zeile2 = br.readLine();
    System.out.println(zeile2);
   
    int i = Integer.parseInt(String);
 
    br.close();
  }
  
  
}
 

frauschramm

Mitglied
Hier jetzt meine aktualisierte Version, stimmt das soweit?


Java:
import java.io.*;
import java.util.LinkedList;
 
class ReadFile1
{
  public static void main(String[] args) throws IOException
  {
    FileReader fr = new FileReader("test.txt");
    BufferedReader br = new BufferedReader(fr);
    
    LinkedList<String> rows = new LinkedList<String>();
    
    String zeile1 = br.readLine();
    System.out.println(zeile1);
    String zeile2 = br.readLine();
    System.out.println(zeile2);
   
 
    br.close();
 
       int sum = 0;
        for(String row : rows) {
            int number = 0;
            try {
                number = Integer.parseInt(row);
            } catch(NumberFormatException e) {
                // Falls eine Zeile nicht nur eine Zahl beinhaltet ...
                e.printStackTrace();
                System.err.println("Fehler: Eine Zeile hat ein fehlerhaftes Format!");
 
                // Das Programm deswegen nicht beenden, einfach die Zeile
                // überspringen/ignorieren
                continue;
            }
            sum += number;
        }

   }

  
  
}
 

frauschramm

Mitglied
Das seh ich bei dir nicht.

Wofür brauchst du die Liste rows? Du musst doch nur genau zwei Werte einlesen.


Seh ich bei dir auch nicht ;)


Ja eins nach dem anderen ich bin wie gesagt Anfänger.:)
Kannst du mir vielleicht an einem Beispiel erläutern wie ich einzelne Werte anstatt Listen einlesen kann, ich hab das leider nicht hinbekommen.

Über Anregungen wie ich die Zahlen teilen kann wäre ich ebenfalls dankbar!
 
G

Gast2

Gast
Mit Integer.parseInt kannst du Strings parsen, ja das passt.

Kannst du mir vielleicht an einem Beispiel erläutern wie ich einzelne Werte anstatt Listen einlesen kann
Den Befehl dafür hast du ja schon: readLine().
Du ließt in deinem Beispiel ja auch schon die geforderten zwei Werte der Datei ein. Du musst die jetzt nur noch parsen und durcheinander teilen.
 
G

Gast2

Gast
Ja, aber nicht die richtigen Werte. Die beiden Strings zeile1 und zeile2 ließt du zwar ein, machst dann aber nichts mehr damit.
 
G

Gast2

Gast
Sowas sollte reichen:
Java:
public static void main(String[] args) throws IOException {
	// Dateiname einlesen
	Scanner sc = new Scanner (System.in);
	
	System.out.print("Bitte Dateinamen eingeben: ");
	String file = sc.nextLine();
	
	// Werte lesen
	BufferedReader br = new BufferedReader (new FileReader (file));
	int value1 = Integer.parseInt(br.readLine());
	int value2 = Integer.parseInt(br.readLine());
	
	// Ausgabe
	System.out.println(value1 / value2);
}
 

frauschramm

Mitglied
Sowas sollte reichen:
Java:
public static void main(String[] args) throws IOException {
	// Dateiname einlesen
	Scanner sc = new Scanner (System.in);
	
	System.out.print("Bitte Dateinamen eingeben: ");
	String file = sc.nextLine();
	
	// Werte lesen
	BufferedReader br = new BufferedReader (new FileReader (file));
	int value1 = Integer.parseInt(br.readLine());
	int value2 = Integer.parseInt(br.readLine());
	
	// Ausgabe
	System.out.println(value1 / value2);
}



Wenn ich bei deinem Code einen Dateinamen eingebe kommt die Fehlermeldung
"java.io.FileNotFoundException:"
 

frauschramm

Mitglied
Kannst du mir vielleicht nochmal erklären was folgender Code macht?
Ich will ja keine Datei erzeugen sondern eine vorhandene Textdatei auslesen.

Java:
 System.out.print("Bitte Dateinamen eingeben: ");
    String file = sc.nextLine();
 
G

Gast2

Gast
Zeile 1: Eine Ausgabe auf der Konsole
Zeile 2: Ließt eine komplette Zeile von der Konsole

Ich will ja keine Datei erzeugen sondern eine vorhandene Textdatei auslesen.
Genau das macht mein Code ja auch, da wird nirgends eine neue Datei angelegt.
 
H

hüteüberhüte

Gast
Ich bin mit von der Partie:
Java:
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Dateiname eingeben: ");
        BufferedReader in_file = null;
        try {
            in_file = new BufferedReader(new FileReader(in.readLine()));
            int unused = Integer.parseInt(in_file.readLine()) / Integer.parseInt(in_file.readLine());
        } finally {
            if (in_file != null) {
                in_file.close();
            }
        }
    }
Dass irgendetwas ausgegeben werden soll, steht nirgends.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Übung Zahlworte Java Basics - Anfänger-Themen 14
M Array - Übung Java Basics - Anfänger-Themen 3
Der Grütz Verständnisfrage zu Übung aus Java Kurs - Schaltjahr bestimmen Java Basics - Anfänger-Themen 2
A Vererbung Vererbung Übung Java Basics - Anfänger-Themen 5
Kawastori Hilfe bei Methoden Übung Java Basics - Anfänger-Themen 6
T OOP Klausur-Übung Öpnv Java Basics - Anfänger-Themen 17
A Übung Else if Java Basics - Anfänger-Themen 2
M Code nur für Cracks? Crack the Passwort Übung Java Basics - Anfänger-Themen 7
parrot Array Übung Java Basics - Anfänger-Themen 25
T Programmierwettbewerb Übung Java Basics - Anfänger-Themen 73
G "Ladebalken" erstellen - Übung Java Basics - Anfänger-Themen 3
M JavaFX-Übung Autospiel Java Basics - Anfänger-Themen 4
B ShuttleBus - Übung Java Basics - Anfänger-Themen 3
Zrebna Compiler-Fehler Java-Compiler wird nach 'javac' keyword-Eingabe nicht gestartet (Erste Übung) Java Basics - Anfänger-Themen 18
B Rekursion - Übung Java Basics - Anfänger-Themen 2
T Klassen Kleine Übung zum Thema Klassen Java Basics - Anfänger-Themen 3
D Übung Felder java Error kompilieren Java Basics - Anfänger-Themen 4
F Erste Schritte Hilfe bei Übung zu String equals() und Schleifen Java Basics - Anfänger-Themen 8
M Übung Ausgabewerte kapier ich nicht ... Java Basics - Anfänger-Themen 1
D Übung zur Klausuraufgabe Java Basics - Anfänger-Themen 18
D OOP Hilfe zu Übung Laufzeitberechnung in Big O Java Basics - Anfänger-Themen 2
F Problem mit selbstprogrammierten Kalender (als Übung) Java Basics - Anfänger-Themen 4
B GUI- JTextField - Übung Java Basics - Anfänger-Themen 5
A Vererbung Verständnisproblem bei Übung Java Basics - Anfänger-Themen 5
EnHancEd[] OOP-Übung Java Basics - Anfänger-Themen 18
EnHancEd[] Exception Übung für Einsteiger Java Basics - Anfänger-Themen 14
T Methoden Array Übung Java Basics - Anfänger-Themen 7
F Übung: Ratespiel aus dem Buch Java von Kopf bis Fuß Java Basics - Anfänger-Themen 14
F Übung 99 Flaschen Bier aus dem Buch Java von Kopf bis Fuß Java Basics - Anfänger-Themen 10
Dit_ Thread Synchronisation | Übung Java Basics - Anfänger-Themen 5
K Anfänger-Übung für Arrays Java Basics - Anfänger-Themen 2
C Java Übung Fragen Java Basics - Anfänger-Themen 3
E BlueJ und Zeichenketten. S83 Übung 2.72 Java Basics - Anfänger-Themen 3
F Upper Case Übung Java Basics - Anfänger-Themen 10
G Frage zu einer Übung Java Basics - Anfänger-Themen 11
A JSP - Probleme mit einer Übung Java Basics - Anfänger-Themen 3
G Problem mit Übung Java Basics - Anfänger-Themen 5
D Problem mit objektorientierter Übung Java Basics - Anfänger-Themen 2
A Java Übung Java Basics - Anfänger-Themen 14
C Bitte Hilfe bei Übung zu Verzweigungen Java Basics - Anfänger-Themen 16
M Test auf Exceptions schreiben Java Basics - Anfänger-Themen 11
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
C Exceptions identifizieren Java Basics - Anfänger-Themen 5
A Exceptions mit objektreferenzen Java Basics - Anfänger-Themen 4
A Exceptions und methods Java Basics - Anfänger-Themen 2
A Cannot find symbol bei exceptions Java Basics - Anfänger-Themen 2
A Exceptions und Packages Java Basics - Anfänger-Themen 6
B JUnit / Exceptions/ try-catch Java Basics - Anfänger-Themen 6
X Exceptions Benutzereingaben Java Basics - Anfänger-Themen 4
F Exceptions in Interfaces Java Basics - Anfänger-Themen 4
F Mehrere Exceptions in einem Catch-Block abfangen Java Basics - Anfänger-Themen 12
L Exceptions und Konten Java Basics - Anfänger-Themen 21
D Frage zu Exceptions Java Basics - Anfänger-Themen 8
I Wie programmiert man Exceptions? Java Basics - Anfänger-Themen 4
N Unterschied zwischen Checked und Unchecked Exceptions Java Basics - Anfänger-Themen 12
C Erste Schritte Exceptions nicht verstanden Java Basics - Anfänger-Themen 2
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
T Exceptions - ausgeführte Zeilen Java Basics - Anfänger-Themen 4
J Exceptions Java Basics - Anfänger-Themen 69
C Exceptions Java Basics - Anfänger-Themen 8
C Exceptions Java Basics - Anfänger-Themen 6
A ArrayQueue mit Exceptions und Vererbung Java Basics - Anfänger-Themen 3
F Exceptions Java Basics - Anfänger-Themen 6
J Frage zum Thema Exceptions (Try/Catch) Java Basics - Anfänger-Themen 3
M "Exceptions abfragen" Java Basics - Anfänger-Themen 6
Farbenfroh Exceptions Anfänger - Finde Fehler nicht Java Basics - Anfänger-Themen 7
Z Catch & Exceptions Java Basics - Anfänger-Themen 4
N Compiler-Fehler Drei Exceptions in GUIHack für Dreiecke auf MoveButtons Java Basics - Anfänger-Themen 36
V Welche Exceptions müssen importiert werden? Java Basics - Anfänger-Themen 3
S Exceptions Java Basics - Anfänger-Themen 7
M Vererbung Problem Vererbung/Exceptions Java Basics - Anfänger-Themen 9
S Verschachtelte Exceptions - Übersicht verbessern Java Basics - Anfänger-Themen 2
J Eclipse Exceptions Java Basics - Anfänger-Themen 2
K Schleifen und Exceptions Java Basics - Anfänger-Themen 8
K Exceptions auslagern Java Basics - Anfänger-Themen 15
R NullPointer Exceptions Java Basics - Anfänger-Themen 3
R Exceptions (try/catch) Java Basics - Anfänger-Themen 63
H Int Exceptions Java Basics - Anfänger-Themen 12
M Exceptions per throws oder try Java Basics - Anfänger-Themen 4
M Compiler-Fehler Queue als ArrayList mit Exceptions Java Basics - Anfänger-Themen 3
T Exceptions in einer Klasse Java Basics - Anfänger-Themen 3
B Eigene Exceptions entwerfen Java Basics - Anfänger-Themen 3
H Methoden Überflüssige Exceptions Java Basics - Anfänger-Themen 20
C Exceptions Java Basics - Anfänger-Themen 14
1 While Schleife Exceptions Java Basics - Anfänger-Themen 6
I Erste Schritte Eigene Fehlermeldungen bei Exceptions Java Basics - Anfänger-Themen 19
D Frage zu Exceptions Java Basics - Anfänger-Themen 12
M Compiler-Fehler Exceptions lieber throwen oder direkt catchen? Java Basics - Anfänger-Themen 8
T Exceptions Java Basics - Anfänger-Themen 19
B Wie finde ich Exceptions? Java Basics - Anfänger-Themen 19
Dit_ Input/Output Alle Exceptions protokollieren Java Basics - Anfänger-Themen 9
T Exceptions Java Basics - Anfänger-Themen 12
J Standard Exceptions abfangen Java Basics - Anfänger-Themen 5
F Exceptions werfen oder catchen?? Java Basics - Anfänger-Themen 14
D Exceptions - Ausnahmebehandlung Java Basics - Anfänger-Themen 19
D Frage zu Exceptions und der import Anweisung Java Basics - Anfänger-Themen 12
J Paar Fragen zu Exceptions Java Basics - Anfänger-Themen 16
G Verständnisproblem: Exceptions Java Basics - Anfänger-Themen 17
S Exceptions bei push/pop in Stack Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben