Skip to Main Content

Java Programming

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Null pointer exception in a String.indexOf statement

807591Mar 4 2008 — edited Mar 4 2008
Yeah, I'm having trouble with this. I've got a program set up to read an external file, divide it into substrings, and put it into an array. The code of the class that does that part is:
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;

public class MapScreen
{
	public int screenAt;
	FileReader path;
	BufferedReader reader;
	String[][] map = new String[21][10];
	public MapScreen(int startPoint)
	{
		try
		{
			path = new FileReader("Map.txt");
			reader = new BufferedReader(path);
		}
		catch (IOException ex) 
		{
            		Logger.getLogger(Interface.class.getName()).log(Level.SEVERE, null, ex);
		}
		String failString = new String();
		int j;
		int i;
		int start;
		int end;
		for (i = 0; i < startPoint; i++)
			try
			{
				failString = reader.readLine();
			}
			catch (IOException ex) 
			{
            			Logger.getLogger(Interface.class.getName()).log(Level.SEVERE, null, ex);
			}
		screenAt = i;
		for (i = 0; i < 21; i++)
		{
			try
			{
				failString = reader.readLine();
			}
			catch (IOException ex)
			{
            			Logger.getLogger(Interface.class.getName()).log(Level.SEVERE, null, ex);
			}
			start = 1;
			for (j = (screenAt + i) % 2; j < 10; j += 2)
			{
				end = failString.indexOf(',', start);
				map[i][j] = failString.substring(start, end);
				start = end + 1;
			}
		}
	}
	public String tileAt(int x, int y)
	{
		return map[x][y];
	}
}
When I run it, it returns "Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException", then a huge string of lines of where it's calling from, the first of those being "at MapScreen.<init>(MapScreen.java:50)"
The Map.txt file contains:
cloudsky,grassky,grass,grass,grass,
sky,grass,grass,grass,grass,
cloudsky,grassky,tree,grass,grass,
sky,grass,grass,grass,grass,
cloudsky,grassky,grass,grass,grass,
sky,grass,grass,grass,grass,
cloudsky,grassky,grass,grass,grass,
sky,grass,grass,grass,grass,
cloudsky,grassky,grass,grass,grass,
sky,grass,grass,tree,grass,
cloudsky,grassky,grass,grass,grass,
sky,grass,grass,grass,grass,
cloudsky,grassky,tree,grass,grass,
sky,grass,grass,grass,grass,
cloudsky,grassky,grass,grass,grass,
sky,grass,grass,grass,grass,
cloudsky,grassky,grass,grass,grass,
sky,grass,grass,grass,grass,
cloudsky,grassky,grass,grass,grass,
sky,grass,grass,tree,grass,
I've tried a few things and I can't figure it out by myself. What did I mess up?
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 1 2008
Added on Mar 4 2008
7 comments
1,462 views