Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

SilentDragon

Alter Hase

  • »SilentDragon« ist der Autor dieses Themas

Beiträge: 530

Wohnort: Köln

Beruf: Student

  • Private Nachricht senden

1

11.03.2010, 14:15

Problem mit filereader in java :/

Hey leute,

ich schreibe wieder ein Programm in java, habe allerdings Probleme beim Lesen einer Datei ...

die Filereader Methode:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
    public void read() throws Exception 
    {
        FileReader fr = new FileReader("Users.txt"); 
        BufferedReader br = new BufferedReader(fr); 
        String s; 
        while((s = br.readLine()) != null) 
        { 
            output = output + s; 
        } 
        fr.close(); 
    }
    
    public String getoutput(){return output;}


wird in dieser Klasse aufgerufen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Startserver
{   
    public static Fileworker fileworker;
    
    public Startserver()
    {
        fileworker = new Fileworker();
    }
    
    public static void main(String args[])
    {       
        try{
        fileworker.read();
        String userstring = fileworker.getoutput();
        System.out.println(userstring);
        }catch (Exception e){ System.err.println("Error: " + e.getMessage());}
    }
}


Der Fileworker alleine funktioniert prima, mir wird der richtige String ausgegeben. Rufe ich ihn allerdings wie im zweitem Code-Teil beschrieben in einer anderen Klasse auf, bekomme ich folgenden Error (Error: null) ?!

Wiso funktioniert die Methode alleine super und in dem Fall nicht ?

danke im voraus

SilentDragon
...

flux

Treue Seele

  • Private Nachricht senden

2

11.03.2010, 14:26

e.getMessage() ist wohl null.
Probier mal e.printStackTrace(). Da bekommst du den Stacktrace. Vielleicht kannst du da mehr mit anfangen.

[Edit] Achso, das Objekt fileworker ist null, weil du die fileworker.read(); Methode direkt aufrufst. Dann wird der Konstruktor von Startserver nicht aufgerufen.

SilentDragon

Alter Hase

  • »SilentDragon« ist der Autor dieses Themas

Beiträge: 530

Wohnort: Köln

Beruf: Student

  • Private Nachricht senden

3

11.03.2010, 14:40

BlueJ ist schon komisch oO

PC neugestartet und alles Funktionert...

trotzdem danke flux ;)
...

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

4

11.03.2010, 15:36

Zitat von »"SilentDragon"«

BlueJ ist schon komisch oO

PC neugestartet und alles Funktionert...

trotzdem danke flux ;)


Bist du an BlueJ gebunden ? Wenn nicht steig um auf Eclipse... BlueJ kannste vergessen ( ist nur was für absolute Neulinge die Objektorientierung noch net verstanden haben....)

Mischu

Frischling

Beiträge: 21

Wohnort: Olten (Schweiz)

Beruf: Javaentwickler (swissinfo.ch)

  • Private Nachricht senden

5

12.03.2010, 20:13

Also bei Java ist es so, dass Instanz und statische Variblen ohne explizite Initialisierung immer null sind. Lokale muss man auf jeden Fall initialisieren.

Wenn du die Fileworker-instanz static machst und kein Object der Startserver klasse erstellst kannst du sonst auch einen static block in der Startserver klasse setzen.

Quellcode

1
static{}


Dieser wird ausgeführt beim ersten Zugriff auf die Klasse...darin kannst du zum beispiel eben statische Member wie bei dir der Fileworker unabhängig der Klasse initialisieren.

Wegen der Entwicklungsumgebung...ich habe schon mit einigen gearbeitet...auch Eclipse und die ist wirklich ok, wenn s dir ned gefällt schau dir mal IDEA von IntelliJ an...die gibts seid Version 9 auch als Community Version...ist aus meiner Sicht die um Welten beste IDE für Java.

SilentDragon

Alter Hase

  • »SilentDragon« ist der Autor dieses Themas

Beiträge: 530

Wohnort: Köln

Beruf: Student

  • Private Nachricht senden

6

17.03.2010, 10:15

@Databyte: jap bin in der Schule an BlueJ gebunden x.X
Haben schon öfters versucht unseren Infolehrer von Eclipse zu überzeugen... Allerdings gibts einige Mitschüler die mit einem neuem Compiler große Probleme hätten, da sie sich schon an BlueJ gewöhnt haben und mit Klassen nur im Textformat ohne anzeige der ganzen Pfeile nicht zurecht kommen würden :lol:
...

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

7

17.03.2010, 13:42

Sowas habe ich befürchtet ;)
In dem Fall würd ich trotzdem umsteigen ;)
Hat BlueJ eigentlich inzwischen sowas wie ne Codevervollständigung .. also so wie Intellisense ?

Werbeanzeige