Eine ganze Textdatei in einer jTextArea anzeigen

Status
Nicht offen für weitere Antworten.
Hallo zusammen,

da ich leider grade erst anfange Java zu coden habe ich da mal eine kleine frage^^
Ich habe ein kleines tool was eine Berechnung ausführt.

Das Ergebnis der berechnung wird in drei Feldern ausgegeben.
(Siehe Screenshot)

arena_neu.jpg


Nun möchte ich alle jemals berechneten Ergebnisse festhalten.
Dazu habe ich eine Datei angelegt (Arena.txt)

Diese Datei soll in gänze in dem Feld Letzte Wertungen angezeigt werden.
Wenn ich meinen Code laufen lasse bekomme ich aber nur ne Fehlermeldung in diesem Fenster:

java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0][match valid=false][need input=false][source closed=false][skipped=false][group separator=\.][decimal separator=\,][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q�\E][infinity string=\Q∞\E]



Kann mir da jemand weiterhelfen ?

Unter Arena Code als Netbeans Projekt
Kann man sich den Source als Netbeans Projekt laden ^^

Danke euch :D








Code:
package ArenaKalkulator;
/*
 * ArenaKalkulator.java
 *
 * Created on 4. November 2007, 22:26
 */

/**
 *
 * @author  Stefan
 */

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.PrintWriter;
import java.math.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.io.File;
import java.util.Scanner;



/**
 * Ein kleines Tool um die WOW-Arena Punkte zu berechhnen. 
 * (C) 2007 By PWF Schoof & Neuhaus GbR
 */
public strictfp class ArenaKalkulator extends javax.swing.JFrame {
    
    /**
     * Hier wird das neue Formular generiert.
     */
    public ArenaKalkulator() {
        initComponents();
        
       
    }
    
                          
    
    private void berechnenActionPerformed(java.awt.event.ActionEvent evt) {                                          
// Berechnung der Eingabe mit Hilfe der Arena Formel von Blizzard
        // Als erstes ein paar fließkomma variablen deklarieren ^^
        
        double num1=0, punkte = 0, result2=0, result3=0,result5=0;
        // Parsen der Eingabe in ein Float
        
        try {
            
             // HIER NOCH DRAN ARBEITEN !!!!!!!!!!!!!
             // Es soll die Datei Arena.txt ausgelesen werden 
             // Diese soll dann in dem textarea letzte_wertungen 
            // angezeigt werden. 
            
            File datei= new File("Arena.txt");
            Scanner werte = new Scanner(datei);
            String ausgeben= werte.toString();
            letzte_wertungen.setText(ausgeben);
            
            num1 = Float.parseFloat(wertung.getText());
            String ok=("Neue Punktzahl");
            fehlermeldung.setText(ok);
            
            // FORMEL ZUSAMMEN BAUEN !!!!!!
            if ( num1 <= 1500 ) {
                punkte = (0.22 * num1 + 14);
            }
            
            else {
                punkte = 1511.26 / (1 + 1639.28 * Math.pow(2.71828, -0.00412 * num1));
            }
        } catch(Exception e) {
            
            
            
            String fehler =("Nur Zahlen eingeben !");
            
            fehlermeldung.setText(fehler);
            wertung.setText("");
            ergebnis2.setText("");
            ergebnis3.setText("");
            ergebnis5.setText("");
            
        }
        
        
        // Zuweisen der Ergebnisse in die Felde
        result2 = punkte*0.76;
        result3 = punkte*0.88;
        result5 = punkte;
        
        // Aufrunden der Zahlen
        result2=Math.floor(result2);
        result3=Math.floor(result3);
        result5=Math.floor(result5);
        
        //  Nun ins Ergebnisfeld setzen.
        
        
        ergebnis2.setText(String.valueOf(result2));
        ergebnis3.setText(String.valueOf(result3));
        ergebnis5.setText(String.valueOf(result5));
        

        // Schreiben des Ergebnisses in die Datei Arena.txt 
        // @ToDo: Hier noch immer ans Ende der Datei anhängen 
        
        try {
            
            SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy 'um' HH:mm:ss ");
            Date currentTime = new Date();
            
            
            
        PrintWriter in_datei_schreiber = new PrintWriter ("Arena.txt");
        in_datei_schreiber.println("========================================");
        in_datei_schreiber.println("Berechnung vom : " +formatter.format(currentTime));
        in_datei_schreiber.println("========================================");
        in_datei_schreiber.println("2 vs 2 :"+ String.valueOf(result2));
        in_datei_schreiber.println("3 vs 3 :"+ String.valueOf(result3));
        in_datei_schreiber.println("5 vs 5 :"+ String.valueOf(result5));
        in_datei_schreiber.println("========================================");
        
        in_datei_schreiber.close();
        
        } catch (Exception e)
                {
            System.out.println("Fehler:"+e);
            
        }
        
    }                                         
    
    private void loeschenActionPerformed(java.awt.event.ActionEvent evt) {                                         
        
        /** Löschen der Eingabefelder
         * Die Datenfelde wertung, ergebnis 2 - 5 leeren.
         **/
        
        wertung.setText("");
        ergebnis2.setText("");
        ergebnis3.setText("");
        ergebnis5.setText("");
        fehlermeldung.setText("");
        
    }                                        

    private void verlassenActionPerformed(java.awt.event.ActionEvent evt) {                                          
// TODO Ihre Ereignisbehandlung hier einfügen:
        System.exit(0);
    }                                         
    
    /**
     * In der main Klasse werden folgende GUI Felder benutzt:
 
     * 
     * wertung (Hier wird die aktuelle Wertung des Players eingegeben)

     * ergebnis2 (Das Ergebnis eines 2 er Teams)
 
     * ergebnis3 (Das Ergebnis eines 3 er Teams)
 
     * ergebnis5 (Das Ergebnis eines 5 er Teams)

     * 
     * buttons:

     * 
     * berechnen: löst die eigentliche Berechnun aus

     * loeschen: setzt alle Ein und Ausgabefelder zurück

     * verlassen: beendet die Anwendung

     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new ArenaKalkulator().setVisible(true);
    
            }
        });
    }
    
    // Variablendeklaration - nicht modifizieren                     
    private javax.swing.JButton berechnen;
    private javax.swing.JTextField ergebnis2;
    private javax.swing.JTextField ergebnis3;
    private javax.swing.JTextField ergebnis5;
    private javax.swing.JTextField fehlermeldung;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JSeparator jSeparator1;
    private static javax.swing.JTextArea letzte_wertungen;
    private javax.swing.JButton loeschen;
    private javax.swing.JButton verlassen;
    private javax.swing.JTextField wertung;
    // Ende der Variablendeklaration                   
    
}
 
G

Gast

Gast
Nee du, das ist keine Fehlermeldung, das ist schon richtig so!

Das ist die toString() Methode deines Scannerobjekts.

Fehlermeldungen sehen immo anders aus.


Steht in Zeile 58

Was du brauchst ist ein scanner.hasNextLine() um zu sehenn ob es was zu lesen gibt. bzw. zu scannen gibt.

Und solange es was zu lesen gibt, ein scanner.next() zum lesen.

Näheres bietet die Api.
 
G

Gast

Gast
Zeile 57 du erstellst dir ein Scanner-Objekt. Das ist eine Utilitieklasse von Java und gibt es seit Java5. Diese Klasse hat methoden zum Einlesen von Tastatureingaben, Dateien etc.

In Zeile 58 rufst du die toString-Methode deines Scanner-Objekts auf. In Java erben Klassen von Object, direkt oder indirekt, und erben daher unter anderem die toString() Methode. Sprich standardmäßig hat jede Klasse eine toString() methode. Diese Methode soll Auskunft darüber geben, was das Objekt selbst ist, bzw. wie seine Variablen gesetzt sind. Und und und. Mehr oder minder sind das "META"-Daten.

Wenn du was auf der Konsole ausgeben möchtest benutzt du doch
System.out.println("Das hier ist ein String");

Wenn du nun etwas über ein Objekt wissen möchtest, rufst du
System.out.println(einObject);
auf.
Intern wird dann zu Object gecastet und die toString() Methode der implementierung aufgerufen, was gleichbedeutend mit
System.out.println(einObject.toString());
ist

Das ScannerObjekt hat zum Einlesen andere Methoden.
Eine Methode ist die Methode hasNextLine(). Deise Methode liefert true, wenn es noch etwas zum einlesen gibt.

Die Methode nextLine(); liest eine Zeile ein und gibt sie als String wieder.
Hättest du in Zeile 58 also
Sting ausgeben = werte.nextLine();
Hättest du die erste Zeile deiner Datei eingelesen und in ausgeben abgelegt.
Da in der Regel nicht davon auszugehen ist, das alles in einer Zeile steht bzw. das es überhaupt eine Zeile gibt möchtest du bestimmt die nächsten Zeilen der Datei auslesen, bzw vorher überprüfen ob es überhaupt eine Zeile gibt um keinen "sinnlosen" leseversuch zu starten.

also wirst du gerne eine Methode wie die oben beschriebene Methode hasNextLine() verwenden wollen.

Also
Code:
if(werte.hasNextLine())
{
String ausgeben = werte.next();
}
Dies ist allerdings ungeschickt, da du später ja wieder auf ausgeben zugreifen möchtest und dies nicht geht, da es in einem if Instanziiert wird.
also wirst du folgendes machen
Code:
String ausgeben;
if(werte.hasNextLine())
{
ausgeben = werte.next();
}

Nun kannst du schon mal eine Zeile einlesen. Da du mehrere Zeilen hast machst du vielleicht sowas

Code:
String ausgeben;
if(werte.hasNextLine())
{
ausgeben = werte.next();
}

String ausgeben1;
if(werte.hasNextLine())
{
ausgeben1 = werte.next();
}

String ausgeben2;
if(werte.hasNextLine())
{
ausgeben2 = werte.next();
}

String ausgeben3;
if(werte.hasNextLine())
{
ausgeben3 = werte.next();
}

String ausgeben4;
if(werte.hasNextLine())
{
ausgeben4 = werte.next();
}
ausgeben = ausgeben+ausgeben1+ausgeben2+ausgeben3+ausgeben4;

Dies lohnt nichtmal wenn du von höchstens 5 Zeilen ausgehst.

Daher lohnt es sich eine Schleife zu nehmen.
Code:
String ausgeben = "";
for(;werte.hasNextLine();){
ausgeben = ausgeben+werte.nextLine();
}
oder
Code:
String ausgeben = "";
while(werte.hasNextLine()){
ausgeben = ausgeben+werte.nextLine();
}
oder
Code:
String ausgeben = "";
do{
ausgeben = ausgeben+werte.nextLine();
}while(scanner.hasNextLine())
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
X Nach einem Bruch testen ob es eine ganze Zahl ist Java Basics - Anfänger-Themen 6
B Eine ganze Zahl zerlegen. Java Basics - Anfänger-Themen 4
Haubitze_Broese Potenz einer Zahl, der Exponent ist dabei eine beliebige ganze Zahl? Java Basics - Anfänger-Themen 10
G Eine ganze Zeile von der Tastatur einlesen! Java Basics - Anfänger-Themen 2
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
G Wie wartet man bis ein URL eine Antwort zurückgibt? Java Basics - Anfänger-Themen 5
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
M mit Maven eine ausführbare Jar bauen Java Basics - Anfänger-Themen 7
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
M Eine Funktion zuweisen Java Basics - Anfänger-Themen 3
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
A Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch. Java Basics - Anfänger-Themen 2
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
S Eine Idee umsetzen ganz schnell!? Java Basics - Anfänger-Themen 68
I Grundsatzfrage: Belegt eine Referenz auf 'null' RAM, und wenn ja - wieviel ;-) ? Java Basics - Anfänger-Themen 5
jeff98 Wie kann man in Java eine Zeichenformation ausgeben? Java Basics - Anfänger-Themen 9
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
Thomas06 Wie kann man mithilfe von boolean herausfinden ob eine zahl durch 5 und 7 teilbart ist ? Java Basics - Anfänger-Themen 7
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
U jUnit 5 Test für eine addMethode Java Basics - Anfänger-Themen 18
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
A Eclipse IDE - Wie bekomme ich eine ältere Version Java Basics - Anfänger-Themen 6
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
berserkerdq2 Warum muss man manchmal in der RUnmethode sleep in eine schleife tun? Java Basics - Anfänger-Themen 9
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
berserkerdq2 Wozu benötigt man den BiPredicate, kann ich nicht einfach eine normale Methode nutzen, statt BiPredicate? Java Basics - Anfänger-Themen 3
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
berserkerdq2 Sende eine Nachricht an den Client und leere den Ausgabestorm, was ist damit genau gemeint? Java Basics - Anfänger-Themen 3
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
sserio Prüfen, ob eine Zahl eine periodische Zahl ist Java Basics - Anfänger-Themen 20
L Anpassung der Spaltenbreite auch auf eine zweite Tabelle anwenden Java Basics - Anfänger-Themen 8
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
berserkerdq2 Warum soll ich shuffle nutzen, um bei Rückgabewert Collection eine Liste zurückzugeben? Java Basics - Anfänger-Themen 3
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
berserkerdq2 Überprüfen ob eine Schreibberechtigung auf ein file exisitert bzw. ob man dieses file löschen kann, wie? Java Basics - Anfänger-Themen 9
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
M Eine Methode die erkennt ob die ein gegebene zahl größer oder kleiner sein muss Java Basics - Anfänger-Themen 2
Avalon Warum funktioniert eine Bedingung und eine andere nicht? Java Basics - Anfänger-Themen 2
F Suche nach betreuender Person für eine Jahresarbeit der 12. Klasse. Java Basics - Anfänger-Themen 6
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
M Wie lassen sich Objektkonstanten initialisieren, wenn sie eine Bedingung erreichen? Java Basics - Anfänger-Themen 6
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
M Wie schreibe ich eine if-Verzweigung um, so dass ein Bedingungsoperator benutzt wird? Java Basics - Anfänger-Themen 9
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
M Wie verknüpfe ich eine Bedingung mit einer Methode ohne if-Verzweigung & Bedingungsoperator? Java Basics - Anfänger-Themen 2
M Wie kann eine Methode eine andere Methode um Werte wie z.B. 1 erhöhen? Java Basics - Anfänger-Themen 6
B Methoden Rekursiv festellen, ob eine Zahl gerade-oft vorkommt oder nicht Java Basics - Anfänger-Themen 4
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
M Wie richte ich eine Diagonale an Robotern in einer World ein? Java Basics - Anfänger-Themen 15
O Wie erstelle ich eine Instanz in einer Klasse für die ich die Instanz will? Java Basics - Anfänger-Themen 4
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
S Kann ich eine jar anschauen wie sie gecoded wurde? Java Basics - Anfänger-Themen 2
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
A Objekte mit Parametern in eine Liste packen Java Basics - Anfänger-Themen 19
Poppigescorn scan.nextInt() wiederholen bis eine Zahl eingeben wird Java Basics - Anfänger-Themen 7
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
N Variabel in eine class mit "extends JLabel" übertragen Java Basics - Anfänger-Themen 2
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
Vivien Auf eine Variable von einer anderen Klasse aus zugreifen Java Basics - Anfänger-Themen 3
B eine methode erstellen Java Basics - Anfänger-Themen 7
F Wann ist es eine Instanz und wann nicht? Java Basics - Anfänger-Themen 1
E Warum lässt sich eine Klasse nicht starten, wenn eine andere Klasse in dem Modul fehlerhaft ist? Java Basics - Anfänger-Themen 1
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
O zweidimensionales array in eine csv-Datei Java Basics - Anfänger-Themen 1
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
Bademeister007 Hallo Leute ich hab eine Frage zur ArrayList Java Basics - Anfänger-Themen 8
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
TimoN11 Java - Eine oder mehrere Eingaben möglich machen Java Basics - Anfänger-Themen 6
A Wie schaffe ich das eine while Schleife addiert danach subtrahirt? Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben