3

我会尽量说清楚,但如果我的问题不完美,请原谅我。我有一个包含多行数据的 txt 文件。例子:

123 拉尔夫·博斯 20000 200 1 2

256 艾德·谢恩 30000 100 2 4

...

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

但是,我不确定如何一次读取一行,将元素传递回另一个类,然后在处理完成后读取 NEXT 行。我的班级之间的方法合作工作正常(经过测试),但我如何一次阅读一行?

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

谢谢

爸爸

编辑

粗略设置:

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() ; 

                ???

                }

文件名永远不会被传递

所以直到这里我可以阅读第一行,但我认为我需要一种方法来循环遍历这些行,以便在类之间来回阅读它们。

棘手...

4

2 回答 2

4

有很多方法可以一次读取整行;Scanner可能是最简单的:

final Scanner s = new Scanner(yourFile);
while(s.hasNextLine()) {
    final String line = s.nextLine();
    YourClass.processLine(line);
}
于 2010-11-30T15:19:21.813 回答
3
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*")

希望它有效

于 2010-11-30T15:22:50.267 回答