如果我的问题不完美,我会尽量保持清醒,但请原谅我。 我有一个包含几行数据的txt文件。例如:
123 ralph bose 20000 200 1 2
256 ed shane 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() ;
???
}
文件名永远不会传递
所以直到这里我才能阅读第一行,但我认为我需要一种方法来循环读取它们,在类之间来回逐个读取它们。
...棘手
答案 0 :(得分:4)
有很多方法可以一次读取整行; Scanner
可能最简单:
final Scanner s = new Scanner(yourFile);
while(s.hasNextLine()) {
final String line = s.nextLine();
YourClass.processLine(line);
}
答案 1 :(得分: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*")
希望它有效