0

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

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

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

4 回答 4

4

由于您从 Java 开始,并且您的案例是关于阅读第一行,我假设您正在阅读第一行,而没有任何迭代其余部分的结构。

您可以从使用while. 要将其放入伪代码中(这样您就可以对其进行分类并自行尝试),另一种方法是这样做:

while(There are more lines to read) {
    Read next line
    Process line
}
于 2013-07-24T17:27:37.137 回答
1

您可以遍历所有行。

BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
   // print the line.
System.out.println(line);
}
br.close();
于 2013-07-24T17:26:21.370 回答
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();
        }
    }
于 2013-07-24T17:27:44.550 回答
0

使用 BufferedReader 读取文件的行。

请参阅下面的示例

于 2013-07-24T17:30:54.920 回答