java代码读取输入文件的所有行,而不仅仅是第一行

时间:2013-07-24 17:23:46

标签: java

我正在一个简单的netbeans项目中工作,该项目旨在从文件中读取数据。该文件有5行,每行有两个字段(一个用于标识项目,另一个用于标识项目的数量)。我的问题是当我运行程序时它只读取第一行(即项目#1及其数量),并忽略其他4行。如何让它读取所有5行(或任何数字)而不仅仅是第一行?对不起,我知道这必须是初级的,我刚刚开始学习java并希望有人可以帮助教育我!谢谢!

根据要求,这是我正在使用的代码(对于它的价值,第一行是第3项,所以在打印输出中,所有返回为0,除了part3total,返回其数量为50):

public static void main(String[] args)
{

    int snum;
    int quantity;
    int part1total, part2total, part3total,part4total, part5total;

    part1total = 0;
    part2total = 0;
    part3total = 0;
    part4total = 0;
    part5total = 0;

    InputFile orderinfo;        
    orderinfo = new InputFile("sprocketorders.txt");

    snum = orderinfo.readInt();
    quantity = orderinfo.readInt();


    switch(snum)
    {
        case 1:     part1total = part1total + quantity;
        break;
        case 2:     part2total = part2total + quantity;
        break;
        case 3:     part3total = part3total + quantity;
        break;
        case 4:     part4total = part4total + quantity;
        break;
        case 5:     part5total = part5total + quantity;
        break;
    }

    System.out.println(part1total);
    System.out.println(part2total);
    System.out.println(part3total);
    System.out.println(part4total);    
    System.out.println(part5total);

4 个答案:

答案 0 :(得分:4)

由于你是从Java开始而你的情况是关于阅读 Only 第一行,我假设你正在读只是第一行没有任何结构< em>迭代而不是其余的。

您可以先使用while开始。要把它放在伪代码中(所以你可以将它排序并自己尝试),另一种方法是这样做:

while(There are more lines to read) {
    Read next line
    Process line
}

答案 1 :(得分:1)

您可以遍历所有行。

BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
   // print the line.
System.out.println(line);
}
br.close();

答案 2 :(得分:0)

您可以尝试以下代码:

    File archivo = null;
    FileReader fr = null;
    BufferedReader br = null;

    try {
        archivo = new File("example.txt");
        fr = new FileReader(archivo);
        br = new BufferedReader(fr);

        // Lectura del fichero
        String linea;
        while ((linea = br.readLine()) != null)
            System.out.println(linea);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            if (null != fr) {
                fr.close();
            }
        } catch (Exception e2) {
            e2.printStackTrace();
        }
    }

答案 3 :(得分:0)

使用BufferedReader读取文件的行。

请参阅below以获取示例