首先看String[] s1=s.split("\t")得到的s1数组的长度。可能文档中的内容每行列之间的间隔符不是“\t”。所以s1取出的就只有s1[0],没有s1[1]。一定要确定间隔是不是“\t”,有可能是“ ”。
可以这样写:
while( (s=in.readLine())!=null )  {
    String[] s1=s.split("\t");
    System.out.println(s1[0]);
    if(s1.length>1){
        System.out.println(s1[1]);
    }
}

解决方案 »

  1.   

    把                System.out.println( s1[1] );這行去掉就ok了
      

  2.   

    s1字符数组越界。System.out.println(s1[0]);
    System.out.println(s1[1]);
    这两行代码必需确保文本文件一行中有两个以上的"\t",System.out.println(s1[1]);才能运行正常;
    如果一行中没有任何一个"\t",s1[0]保存的是整行信息
      

  3.   

    String a="f@g"和a="f@g@" a.split("a").length为2
      

  4.   

    最好能把那个txt文件传上来,这样更好分析.我按照你的程序跑了一下都很正常啊,不知道你那里有什么问题呢?
      

  5.   

    anchor1(聪头)这一招果然很灵,只是我还是不太明白为什么会这样
      

  6.   

    数组越界,s.split("\t");返回的数组长度一定小于2