NullPointerException就是你有空指针那,设个断点调试就发现了

解决方案 »

  1.   

    if(in != null){
    s = in.readLine();
    DatagramPacket packet = null;
    if(s != null){
    byte data[] = s.getBytes();
    packet = new DatagramPacket(data, data.length, group, port);
    System.out.println(new String(data));
    socket.send(packet);
                    Thread.sleep(200);
    }
    }如果没选文件,那么in是空的,会报错;
    如果选了文件,当文件读完了,s会是空的,也会报错。
      

  2.   

    感谢大家的热心帮助,我自己把run()方法修改了后就可以实现循环广播一个文件了,增加了粗体处的代码
    public void run()
        {
            while(true)
            {
                try{
                   if(token==-1)
                   {
                       File file=new File(filedialog_open.getDirectory(),filedialog_open.getFile());
                      file_reader=new FileReader(file);
                      in=new BufferedReader(file_reader);
                  }      
                  token=0;
                   s=in.readLine();                         
                   DatagramPacket packet=null;              
                    byte data[]=s.getBytes();
                    packet=new DatagramPacket(data,data.length,group,port);                
                    socket.send(packet);
                    Thread.sleep(200);              
                }
                catch(Exception e)
                {
                  
                   token=-1;
                }
                if(done==true)
                {
                     break;
                 }
            }
        }