这里FileInputStream为什么不能读取文件?

下面是一个小程序,但运行总是有异常,不能显示读取的文件! 本人新手,谢谢指教!
import java.io.*;

public class TestFileInputStream {

public static void main(String[] args) {

        FileInputStream in = null;
        int b = 0;
        try {
            new FileInputStream("E:\\all java\\MyFirstTest\\src\\HelloWorld.java");
            System.out.println("ok!");
        } catch (FileNotFoundException e) {
            System.out.println("找不到文件");
            System.exit(-1);
            e.printStackTrace();
        }
        try{
            long num = 0;
            [color=red]while((b = in.read())!=-1){[/color]
                System.out.print((char)b);
                num++;
                b = in.read();
            }
            in.close();             
            System.out.println();
            System.out.println("共读取字节数"+num);
        }catch(IOException e){
            System.out.println("文件读取错误");
            System.exit(-1);
        }catch(NullPointerException npe){
            System.out.println("空指针错误");
            npe.printStackTrace();
        }

}

}

结果:
ok!
空指针错误
java.lang.NullPointerException
at TestFileInputStream.main(TestFileInputStream.java:20)

:D ,in没有初始化。