这样试试:
       FileReader fr = new FileReader(file);
       BufferedReader br = new BufferedReader(fr);
       String s1;
       int l;
       while((l = br.read()) != -1){
           s1 = br.readLine();
           a=s1.substring(0, 43); 
           b=s1.substring(44, 49);
           sql="INSERT INTO TB_TEMP(Col001, Col002) VALUES ('"+a+"','"+b+"')";         
           ps=con.prepareStatement(sql); 
           ps.executeUpdate();
           bw.newLine();
           
       }

解决方案 »

  1.   

    呵呵,楼主,你的判断null,不妥,应该像楼上的那样判断,或者是其他的根据需要的判断方式啊.你不是读不出来,是方式不对,你设置断点吧.楼主,断点的方式真是屡试不爽,呵呵,早点解决吧.
      

  2.   

    判断null的没问题啊,坐标也没问题。把s1打出来看看是什么
      

  3.   

      bw.newLine(); 
    ?
      

  4.   

       给你准确的答案吧。  去看 http://topic.csdn.net/u/20081205/00/bf825309-bfb7-46c0-bbbf-dd1fdfd9f8dd.html
      

  5.   

    if((s1=br.readLine())==null){ 
    while((s1 = br.readLine()) != null) 
    readline读了2次 第一行不见了。
      

  6.   


    火眼金睛那,把while((s1 = br.readLine()) != null){ }
       删掉就好了,这句多余。
    9楼的纯粹瞎扯。