package kaoshi;import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.StringTokenizer;public class KSServer 
{
private static boolean guan = true;
private ServerSocket sk;
private String str[];

public void go()
{
try
{
sk = new ServerSocket(6666);

catch (IOException e1) 
{
e1.printStackTrace();
}
while(guan)
{

System.out.print("服务器已启动\n");
Socket skt;
try {
skt = sk.accept();
System.out.print("服务器已经连接用户\n");
BufferedReader br = new BufferedReader(new InputStreamReader(skt.getInputStream()));
PrintWriter pw = new PrintWriter(skt.getOutputStream(),true);
String s = null;
while(( s = br.readLine()) !=  null)
{
System.out.print(s);
StringTokenizer st = new StringTokenizer(s," ");
int st1 = st.countTokens();
for(int i = 0;i < st1;i++)
{
str[i] = st.nextToken();
}
System.out.print(str[1]);
System.out.print(str[2]);
System.out.print(str[3]);
pw.print(s);
pw.flush();
}
sk.close();
skt.close();
pw.close();
br.close();
} catch (IOException e) 
{

e.printStackTrace();
}

}


} public static void main(String args[])
{
KSServer ks = new KSServer();
ks.go();

}
}这是代码  运行正常 但在客户端发送个1 2 3 4后 显示服务器已经连接用户
1 2 3 4Exception in thread "main" java.lang.NullPointerException
at kaoshi.KSServer.go(KSServer.java:48)
at kaoshi.KSServer.main(KSServer.java:74)
为什么会这样?怎么改?
System.out.print(str[1]);
System.out.print(str[2]);
System.out.print(str[3]);都没有起作用拜托高手大人们了~~帮帮小弟~~