当前位置: 代码迷 >> Eclipse >> java关于readline的应用
  详细解决方案

java关于readline的应用

热度:99   发布时间:2016-04-23 01:45:05.0
java关于readline的使用
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.Stack;

public class project2 {
public static void main(String args[]){
String a=null;
int i;
Stack<css> si=new Stack<css>();
File  aFile = new File("d:/a.txt");
try {
PrintWriter pw = new PrintWriter(aFile);
BufferedReader br=new BufferedReader(new FileReader("d:/Production.txt"));
css b;
a=br.readLine();
while(a!= null)
{
b=new css(a);
si.push(b);
a = br.readLine();
}
Iterator<css> it=si.iterator();
while(it.hasNext()){
css j=it.next();
pw.println(j.zuo+"->"+j.you);
j.print();
pw.flush();
}
pw.close();
br.close();
} catch (FileNotFoundException e) {
System.out.println("FileNotFoundException");
}
catch (IOException e) {
System.out.println("IOException");
}
}
}
public class css {
      String zuo;
      String you;
      css(String t)
      {
       if(t.indexOf("-")>=0)
       {
       zuo=t.substring(0, t.indexOf("-"));
       you=t.substring(t.indexOf(">")+1, t.length());
       }
      }
      boolean equal(css t)
      {
       if(t.zuo.equals(zuo)&&t.you.equals(you))
       {
       return true;
       }
       else
       {
       return false;
       }
      }
      void print()
      {
       System.out.println(zuo+"->"+you);
      }
      
}
其中d:/Production.txt文件存放的是
A -> aB
C -> sdfdf
为什么输出的是
A -> aB
C -> sdfdf
null->null
多了null->null。
我已经判断a!=null为什么
while(a!= null)
{
b=new css(a);
si.push(b);
a = br.readLine();
}
还执行了一次把空对象押入了???
------解决方案--------------------
别的地方没看,只说这里:

a=br.readLine();
while(a!= null)
{

}

一行一行读取时,while循环不是这么写的

改成:

while((a = br.readLine())!= null)
{

}
  相关解决方案