在txt文件中读取行[java]

问题描述:

我会尽量清楚,但如果我的问题并不完美,请原谅我。 我有一个包含多行数据的txt文件。例如:在txt文件中读取行[java]

123拉尔夫百色20000 200 1 2

256编肖恩30000 100 2 4

...

我需要读取每一行顺序,并将它传递回的方法中的一个单独的课程进行处理。我知道如何使用StringTokenizer将每行分解为元素。

但是,我不知道如何一次读取一行,将这些元素传递回另一个类,然后在处理完成后读取下一行。我的课程之间的方法合作正常(测试),但我怎么一次读一行?

我正在考虑创建一个数组,其中每行将是一个数组元素,但由于行数将是未知的,我不能创建一个数组,因为我不知道它的最终长度。

由于

巴巴

EDIT

粗糙设置:

A类

end_of_file = f1.readRecord(emp); 

     if(!end_of_file) 
     { 
      slip.printPay(slipWrite); 
     } 

B类

public boolean readRecord(Employee pers) throws IOException { 

     boolean eof = false ; 

     String line = in.readLine() ; 

       ??? 

       } 

名不舍

传递,因此,直到在这里,我可以读第一线,但我想我需要一个方法是通过线环接一个回读他们一个和类之间。

棘手......

有很多方法可以一次读取整行; Scanner是可能比较容易:

final Scanner s = new Scanner(yourFile); 
while(s.hasNextLine()) { 
    final String line = s.nextLine(); 
    YourClass.processLine(line); 
} 
+0

喜迈克尔,我加了一些代码,试图说明合作粗略。我不能在我的设置中使用文件名我想? – raoulbia 2010-11-30 15:29:09

+1

@Baba`yourFile`实际上是一个[`File`](http://download.oracle.com/javase/6/docs/api/java/io/File.html)实例,不是文件名,但它并不重要。我完全不明白你发布的代码。该代码将读取文件中的每一行,并将整行传递给`YourClass.processLine`;你在找什么?除此之外,还需要做些什么? – 2010-11-30 15:33:30

void readLine(String fileName) 
{ 
    java.io.BufferedReader br = null; 
    try 
    { 
     br = new java.io.BufferedReader(new java.io.FileReader(fileName)); 
     String line = null; 
     while(true) 
     { 
      line = br.readLine(); 
      if(line == null) 
      break; 
      // process your line here 
     } 
    }catch(Exception e){ 
    }finally{ 
    if(br != null) 
     { 
     try{br.close();}catch(Exception e){} 
     } 
    } 
} 

此外,如果要分割字符串...使用

串类split方法。对于依赖于空间拆分...你可以做... line.split("\\s*")

希望工程