String lineStr;
 FileInputStream fis;
 InputStreamReader ir;
 BufferedReader br;
 //
  FileOutputStream fos= new FileOutputStream("d:\\abc.txt");
 OutputStreamWriter ow= new OutputStreamWriter(fos);
 BufferedWriter bw = new BufferedWriter(ow);
 //读取文件
 fis = new FileInputStream("d:\\cab.txt");
 ir = new InputStreamReader(fis);
 br = new BufferedReader(ir);
  
 while ((lineStr = br.readLine()) != null)
 {
 if(lineStr.endsWith("O"))
 {
 bw.write(lineStr);
 bw.newLine();
 }
 else
 {
    //lineStr=lineStr.trim();
     int n=lineStr.length();
String s=lineStr.substring(n-2);
//System.out.println(s);
s=s.trim();
//System.out.println(s);
int i=Integer.parseInt(s);
System.out.println(i);
int j=1;
if(j<=i)
{

switch(i)
{
case 1: bw.write(lineStr);
bw.newLine();
 default:bw.newLine() ;
      }
}
 }            
 }
 
bw.flush();
bw.close();
 ow.close();
 br.close();
 ir.close();
fis.close();这段代码为什么会出现下面的错误呢??7
9
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at test2.Shuchu.main(Shuchu.java:44)下面是要读取的文件内容
LONGITUDE LATITUDE CellID MSC EC/IO
120.1436111 30.18972222 0E31 14121-91 -04
120.1436111 30.18972222 0E32 14121-91 -03
120.1436111 30.18972222 0E33 14121-91 -05

解决方案 »

  1.   

    楼主我教你怎么贴代码:
    1、将代码进行良好的格式化,以方便阅读。
    2、在发帖文本框的上方单击“#”按钮,选择 Java
    3、将代码粘贴到【code=Java】和【/code】之间。发出来的帖子就会是下面的效果:public class Hello {    // 程序入口
        public static void main(String[] args) {
            System.out.println("Hello!");
        }
    }
      

  2.   

    if(lineStr.endsWith("O")) 
    改成
    if(lineStr.trim().endsWith("O")) 
    在复制的时候我就发现,您读取的文件内容里每行的末尾都是一个空格
    lineStr并不是endsWith("O")而是endsWith("O "),所以就报错了
      

  3.   

    代码格式化的快捷键是:Ctrl+Shift+F
      

  4.   


    java.lang.NumberFormatException: For input string: "" 
    类型转换错误,转int必须保证是数字
      

  5.   


    你说的没错,但问题的根本原因是因为
    if(lineStr.endsWith("O"))
    这个判断有误,所以导致分割字符串不正确,
    从而造成对不是数字的字符串进行转换而报错,
    你说的这些不用运行lz给出的代码,直接看lz
    的提示就可以知道。我觉得本着尊重每一位发贴人
    的角度考虑,最好还是先运行一下别人的代码,然后
    再发表自己的看法,您说是不是这个道理?