java.lang.NullPointerException weiß nich warum

Status
Nicht offen für weitere Antworten.
G

Gast_User

Gast
hallo
ich versuche gerade ein bischen mit j2me "herumzuspielen" und möchte eigendlich "nur" eine textdatei einlesen und ausgeben sozusagen.
Hier mal mein code und darunter der fehler (NullPointerException)

Code:
package Text;

import java.io.DataInputStream;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;

public class Textreader extends MIDlet implements CommandListener {
   
    private Command exitCommand;
   
    private Command nextCommand;
   
    private Form form;
   
    private Display display;
   
    private byte[] text_temp;
   
    private int anfang = 50;
   
    private String temp;
   
    public void lesen() {
        InputStream is = this.getClass().getResourceAsStream("/text.txt");
        DataInputStream dis = new DataInputStream(is);
        try {
            dis.readFully(text_temp, 10, 10);
//            System.out.println(dis.);
            System.out.println(text_temp[1]);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
   
    public void textauslesen() {
        display = Display.getDisplay(this);
        form = new Form("Texte");
        exitCommand = new Command("Exit", Command.EXIT, 2);
        nextCommand = new Command("weiter", Command.OK, 3);
        form.addCommand(exitCommand);
        form.addCommand(nextCommand);
        form.setCommandListener(this);
    }
   
    protected void startApp() {
        textauslesen();
        display.setCurrent(form);
    }
   
    protected void pauseApp() {
    }
   
    protected void destroyApp(boolean arg0) {
    }
   
    public void commandAction(Command command, Displayable displayable) {
        if (command == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
        if (command == nextCommand) {
            lesen();
        }
    }
}
einze zeile in dem code ist auskommentiert. die darüberliegende zeile wirft die exception.

Code:
java.lang.NullPointerException
        at java.io.DataInputStream.read(DataInputStream.java:80)
        at java.io.DataInputStream.readFully(+34)
        at Text.Textreader.lesen(Textreader.java:34)
        at Text.Textreader.commandAction(Textreader.java:69)
        at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(+282)
        at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(+10)
        at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68)
        at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47)
        at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+250)
 
B

Beni

Gast
Du hast "text_temp" nie initialisiert, die Variable zeigt noch auf null. Irgendwo vor Zeile 34 musst du mal "text_temp = new ..." aufrufen.
 
G

Gast_User

Gast
hab ich jetzt gemacht geht immer noch nicht....

Code:
package Text;

import java.io.DataInputStream;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;

public class Textreader extends MIDlet implements CommandListener {
    
    private Command exitCommand;
    
    private Command nextCommand;
    
    private Form form;
    
    private Display display;
    
    private byte[] text_temp = new byte[5];
    
    private int anfang = 50;
    
    private char temp;
    
    public void lesen() {
        InputStream is = this.getClass().getResourceAsStream("/text.txt");
        DataInputStream dis = new DataInputStream(is);
        try {
            dis.readFully(text_temp, 10, 5);
            System.out.println(text_temp[2]);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    
    public void textauslesen() {
        display = Display.getDisplay(this);
        form = new Form("Texte");
        exitCommand = new Command("Exit", Command.EXIT, 2);
        nextCommand = new Command("weiter", Command.OK, 3);
        form.addCommand(exitCommand);
        form.addCommand(nextCommand);
        form.setCommandListener(this);
    }
    
    protected void startApp() {
        textauslesen();
        display.setCurrent(form);
    }
    
    protected void pauseApp() {
    }
    
    protected void destroyApp(boolean arg0) {
    }
    
    public void commandAction(Command command, Displayable displayable) {
        if (command == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
        if (command == nextCommand) {
            lesen();
        }
    }
}
 
S

SlaterB

Gast
eine NullpointerException wird doch wohl nicht mehr kommen, oder?
warum meldest du dann nicht die neue Fehlermeldung?

> dis.readFully(text_temp, 10, 5);

was bedeuten deiner Meinung nach die beiden Paramter 10 und 5 am Ende?
schaue in die API wenn du das noch nicht weißt
 
G

Gast_User

Gast
laut api:

read(byte[] b, int off, int len)

b - the buffer into which the data is read.
off - the start offset of the data.
len - the maximum number of bytes read.

da hab ich ja nix falsch gemacht. hab n byte array als speicher angegeben, einen integer wo er starten soll in der datei und wie viel byte er lesen soll... ist schon so gewollt...
 
G

Gast_User

Gast
habs nochmla so probiert klappt aber auch nicht... :(

Code:
InputStream is = this.getClass().getResourceAsStream("text.txt");
        InputStreamReader reader = new InputStreamReader(is);
        try {
            reader.read(text_temp2);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        System.out.println(text_temp[2]);

als ausgabe bekomme ich immer 0
 
S

SlaterB

Gast
vielleicht ist die Datei nicht da?
obwohl, dann sollte wohl doch eine Exception auftreten, teste mal mit "ffkhksj.txt"

du liest die chars aber in text_temp2 ein und gibst dann text_temp aus,
das ist ein anderes Array ;)


-----------

> da hab ich ja nix falsch gemacht. hab n byte array als speicher angegeben, einen integer wo er starten

du hast immer noch nicht die Fehlermeldung gepostet und das Startinteger bezieht sich auf das Array,
also 'schreibe 5 Bytes ins Array an Position 9-14'

insofern hast du alles falsch gemacht ;)

---------


hier mal ein Testprogramm, aber nur in J2SE:

Code:
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Test {

	public static void main(String[] args) throws Exception {

		InputStream is = Test.class.getResourceAsStream("Test.java");
		InputStreamReader reader = new InputStreamReader(is);
		System.out.println("available bytes: " + is.available());

		byte[] b = new byte[5];
		try {
			is.read(b);
		} catch (IOException ex) {
			ex.printStackTrace();
		}
		System.out.println("byte: " + b[2]+ " char: "+((char) b[2]));
		System.out.println("available bytes: " + is.available());

	}
}

Ausgabe:
available bytes: 872
byte: 112 char: p
available bytes: 867

die Anzahl der Bytes stimmt nicht ganz, hab noch bisschen Code entfernt,
das entscheidene ist, das überhaupt bytes da sind,
und das die Zahl um 5 sinkt, wenn man 5 ausliest,
kannst du das bei dir auch beobachten?
die eingelesene Datei ist die Datei selber als .java falls bei dir vorhanden,
ansonsten vielleicht die .class-Datei, die sollte auf jeden Fall an diesem Ort sein,

byte[2] ist das p aus 'import ..' am Anfang der Datei ;)
 
G

Guest

Gast
SlaterB hat gesagt.:
du liest die chars aber in text_temp2 ein und gibst dann text_temp aus,
das ist ein anderes Array ;)
...omg... üble leichtsinnsfehler... bin mal wieder :autsch:

SlaterB hat gesagt.:
> da hab ich ja nix falsch gemacht. hab n byte array als speicher angegeben, einen integer wo er starten

du hast immer noch nicht die Fehlermeldung gepostet und das Startinteger bezieht sich auf das Array,
also 'schreibe 5 Bytes ins Array an Position 9-14'

insofern hast du alles falsch gemacht ;)

hatte gedacht des bezieht sich auf die datei, ich wollte nur die bestimmten stellen einlesen... aber des kann ich ja mit skip machen.


danke für dein testprogramm... habs bei mir jetzt zum laufen bekommen so wie ichs wollte...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Android Switch-Klasse stoppt Android App / java.lang.NullPointerException Android & Cross-Platform Mobile Apps 5
N Android java.lang.IllegalStateException: No host Android & Cross-Platform Mobile Apps 22
J Plötzlich "java.lang.String cannot be converted to JSONObject" Android & Cross-Platform Mobile Apps 9
M jsonobject cannot be cast to java.lang.string Android & Cross-Platform Mobile Apps 4
M Fehler ohne Sinn? java.lang.RuntimeException: Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 11
B java.lang.RuntimeException: Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 2
D java.lang.UnsatisfiedLinkError Android & Cross-Platform Mobile Apps 3
AllBlack Suche Programmierer in Java und Kotlin mit dem ich mich Selbstständig machen kann Android & Cross-Platform Mobile Apps 23
W Netzwerk Verbindungen Java Android Android & Cross-Platform Mobile Apps 107
Adem61 Flutter Frontend und Java Backend möglich ? Android & Cross-Platform Mobile Apps 2
M Repository bei Room-Database in Android Studio (Java) Android & Cross-Platform Mobile Apps 2
T Android Android Augmented Faces in Java. Neue Landmarks erstellen Android & Cross-Platform Mobile Apps 1
rafi072001 Java API um HTML Elemente von externen Websiten zu bekommen Android & Cross-Platform Mobile Apps 2
A Mit Java neues item in ein string-array einer Strings.xml schreiben Android & Cross-Platform Mobile Apps 4
ruutaiokwu Wie fügt man bei Android Studio .jar-Libraries zu einem Android-Java-Projekt hinzu? Android & Cross-Platform Mobile Apps 33
M Gradle sync failed: Could not determine Java version using executable Android & Cross-Platform Mobile Apps 5
J AndroidStudio Login.Java Android & Cross-Platform Mobile Apps 0
O Web API in Android (JAVA) einbinden Android & Cross-Platform Mobile Apps 3
N Wie kann ich mein Handy mit Java rooten? Android & Cross-Platform Mobile Apps 38
T Bringen mir die Java-Basics irgendetwas für die Android-Programmierung Android & Cross-Platform Mobile Apps 4
T Fehler Android Studio: java.net.MalformedURLException: no protocol: http%3A%2F%2Fwww.mal ..... Android & Cross-Platform Mobile Apps 2
C Android Programmierung speziell oder einfach Java Buch kaufen? Android & Cross-Platform Mobile Apps 3
L Android RadioButtonGroup innerhalb der JAVA Android & Cross-Platform Mobile Apps 4
L Android Java scheint XML nicht zu finden Android & Cross-Platform Mobile Apps 11
J Android String in andere Java-Dateien überführen Android & Cross-Platform Mobile Apps 1
J Android Java Packet in Android Java ide hinzufügen. Android & Cross-Platform Mobile Apps 3
T Usage: java ZipInfo zfname Android & Cross-Platform Mobile Apps 2
P Android App - Java Android & Cross-Platform Mobile Apps 1
S Android Android java onclick listener Problem Android & Cross-Platform Mobile Apps 9
P Android JUnit Testprojekt warum keine Java Klassen Android & Cross-Platform Mobile Apps 1
A Android join."," von python in java Android & Cross-Platform Mobile Apps 4
C Android Code in mehrere .java verteilen Android & Cross-Platform Mobile Apps 6
T Android Android Sensor: Java Problem Android & Cross-Platform Mobile Apps 1
A Wieso keine java - forum app Android & Cross-Platform Mobile Apps 4
D Lib für (Desktop-)Java und Android schreiben Android & Cross-Platform Mobile Apps 7
D Android Java-Umfang durch Apps-Entwicklung? Android & Cross-Platform Mobile Apps 1
W Java Editor für Android +Emulator Android & Cross-Platform Mobile Apps 7
L Mit Java ein Android Projekt kompilieren Android & Cross-Platform Mobile Apps 6
F Bei einer Android Java App, Objekte erstellen Android & Cross-Platform Mobile Apps 2
J Android-App-Programmierung - Ähnlich normaler Java-Programmierung? Android & Cross-Platform Mobile Apps 6
G R.java erzeugen Android & Cross-Platform Mobile Apps 5
M Java und App Programmierung in 4 Monaten? Android & Cross-Platform Mobile Apps 7
X Unable to execute dex: Java heap space Exception bei Sqllite lib Android & Cross-Platform Mobile Apps 14
G Wie kann ich nachhelfen die R.java zu aktualisieren? Android & Cross-Platform Mobile Apps 3
G Android XML - Teil in Java importieren Android & Cross-Platform Mobile Apps 2
M Push-Nachricht via Java Android & Cross-Platform Mobile Apps 2
F Bilder in Java importieren (Fehler?) Android & Cross-Platform Mobile Apps 5
L Java Anwendungen fürs IPad Android & Cross-Platform Mobile Apps 6
S Desktop Anwedung ( Java 6 ) auf android zu greifen. Android & Cross-Platform Mobile Apps 6
V App Daten in Java Applikation Android & Cross-Platform Mobile Apps 3
L Android Android über Java Code connecten? Android & Cross-Platform Mobile Apps 2
A Android SimpleDateFormat gibt für Date unter android anderes Datum zurück als in Std. Java Android & Cross-Platform Mobile Apps 2
S Android binäre Daten zwischen Android und einem Java-Server Android & Cross-Platform Mobile Apps 5
A Java Symbian Programmierung Android & Cross-Platform Mobile Apps 4
S Android Java, Android und Serializable Android & Cross-Platform Mobile Apps 3
M Frage zu Java Programm für Windows Mobile 6.5 Android & Cross-Platform Mobile Apps 2
H Mjpeg Code läuft unter Java jedoch nicht unter Android? Android & Cross-Platform Mobile Apps 11
W Android Crosswordliste Java<->Android Syntax Android & Cross-Platform Mobile Apps 5
H Android ANDROID SDK + JAVA SE Development Kit (JDK) Android & Cross-Platform Mobile Apps 4
B Java auf dem Handy Android & Cross-Platform Mobile Apps 5
Y sun java wireless toolkit couldnt find jdk Android & Cross-Platform Mobile Apps 2
S ipod app mit java Android & Cross-Platform Mobile Apps 22
J Java ME java.rmi.Remote kann nicht gefunden/geladen werden Android & Cross-Platform Mobile Apps 9
Bastifantasti Java ME Objekte in Java? Android & Cross-Platform Mobile Apps 3
P Java ME Java me sdk3 - bin am ende Android & Cross-Platform Mobile Apps 7
K Java ME Handy Java App die die Navigationstasten abfragt Android & Cross-Platform Mobile Apps 7
W Android gleich Java? Android & Cross-Platform Mobile Apps 3
C Java ME Kein Java Zugriff auf Samsung! Android & Cross-Platform Mobile Apps 5
R Handy Java Version Android & Cross-Platform Mobile Apps 18
J iPhone/iPod/iPad und Java? Android & Cross-Platform Mobile Apps 12
E Java ME package java.sql does not exist? Android & Cross-Platform Mobile Apps 2
V [Java] und [JavaME] ClientServer StreamConnection . Problem beim lesen / schreiben Android & Cross-Platform Mobile Apps 2
O Entwickler für Java Anwendungen auf Handy gesucht! Android & Cross-Platform Mobile Apps 3
I Java Handy - mehrere Programme gleichzeitig Android & Cross-Platform Mobile Apps 8
Screen Java auf Handy,aber nicht Ja2Me ! Android & Cross-Platform Mobile Apps 3
T Java Mobile SDK 3 - Can't Connect to Device Manager Android & Cross-Platform Mobile Apps 14
R Java Programmierung auf Handys Android & Cross-Platform Mobile Apps 8
B Java PC Spiel fürs Handy umwandeln? Android & Cross-Platform Mobile Apps 8
F Server - Client Verbindung mit Java ME Android & Cross-Platform Mobile Apps 3
Outsourcer Kann Java das? Android & Cross-Platform Mobile Apps 13
R Java ME mit Zugriff auf Adressbuch / Kalender Android & Cross-Platform Mobile Apps 3
G Hab mal allgeneine Frageb zu Java ME ! Android & Cross-Platform Mobile Apps 2
H WTK 2.5.2 nur mit Java 1.5? Android & Cross-Platform Mobile Apps 4
T Java Bluetooth Kalender Android & Cross-Platform Mobile Apps 2
W Java auf ein CECT Handy installieren Android & Cross-Platform Mobile Apps 6
A Java Programm auf Handy? Android & Cross-Platform Mobile Apps 2
C Telefonanruf mit Java absetzen? Android & Cross-Platform Mobile Apps 5
L Ungültiges Java-Archiv (jar) nach Programmentwicklung Android & Cross-Platform Mobile Apps 4
F Welches Buch zu java ME könnt ihr empfehlen? Android & Cross-Platform Mobile Apps 2
TheJavaKid handy java comiler Android & Cross-Platform Mobile Apps 5
P Java für PDA DELL Axim 51 Android & Cross-Platform Mobile Apps 4
J J2ME Java Programm im Hintergrund auf Handy laufen lassen? Android & Cross-Platform Mobile Apps 2
N Anfängerfrage - mit Java einen Anruf initiieren ? Android & Cross-Platform Mobile Apps 3
D c programm als java application aufs nokia 6230 Android & Cross-Platform Mobile Apps 2
M Java Midlet -> in einem ChoiceGroup ein TextField zur Wah Android & Cross-Platform Mobile Apps 2
H Java auf PDA Android & Cross-Platform Mobile Apps 11
G SMS versenden mit Java Android & Cross-Platform Mobile Apps 2
F Per Java zu Handy connecten Android & Cross-Platform Mobile Apps 5
G Java Programme auf Palm übertragen. Android & Cross-Platform Mobile Apps 4
M Java-Programme für Handy auf Desktop-PC ausführen Android & Cross-Platform Mobile Apps 4

Ähnliche Java Themen

Neue Themen


Oben