package io;import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedList;public class Exercise7 
{
static BufferedReader br;
static LinkedList<String> ll;
public static void main(String[] args)
{
try
{
 String name="H:\\D\\程序开发软件\\java程序\\java程序\\Thinking in java4\\src\\io\\Alien.java";
BufferedReader br=new BufferedReader(new FileReader(name));

LinkedList<String> ll=new LinkedList<String>();
String s;
while((s=br.readLine())!=null)
{
ll.add(s);
}
br.close();

}catch(IOException e)
{
System.out.println("没有找到文件");
}
System.out.println(ll);
}}
输出为null;
why?

解决方案 »

  1.   

    BufferedReader br=new BufferedReader(new FileReader(name));
    //LinkedList<String> ll=new LinkedList<String>(); //
    ll=new LinkedList<String>(); //上面一行改成这样就可以了,
    //注意如果你重新定义一个变量l1的话,局部变量优先,所以以下的操作都是对局部变量操作
    //而最后打印的时候
    System.out.println(ll); //这里的l1是static的l1,因为局部变量l1执行到这里的时候已经消亡了,局部变量的l1生命周期只在try里面
      

  2.   


    //LinkedList<String> ll=new LinkedList<String>(); //
    ll=new LinkedList<String>(); 正如一楼所说,你打印的ll是static的ll,而局部变量在你打印的时候已经销毁了。