在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);
}
答
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*")
希望工程
喜迈克尔,我加了一些代码,试图说明合作粗略。我不能在我的设置中使用文件名我想? – raoulbia 2010-11-30 15:29:09
@Baba`yourFile`实际上是一个[`File`](http://download.oracle.com/javase/6/docs/api/java/io/File.html)实例,不是文件名,但它并不重要。我完全不明白你发布的代码。该代码将读取文件中的每一行,并将整行传递给`YourClass.processLine`;你在找什么?除此之外,还需要做些什么? – 2010-11-30 15:33:30