有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

根据要求,这是我正在使用的代码(值得一提的是,第一行是第3项,因此在打印输出中,除了返回数量为50的part3total之外,所有返回值均为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) 个答案

  1. # 1 楼答案

    使用BufferedReader读取文件的行

    有关示例,请参阅below

  2. # 2 楼答案

    您可以尝试以下代码:

        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. # 3 楼答案

    你可以遍历所有的行

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

    既然你是从Java开始的,你的案例是关于只阅读第一行,我假设你阅读的是只是第一行,没有任何结构迭代

    您可以从使用while开始。要将其放入伪代码中(这样您就可以自己进行分类和尝试),一种替代方法是:

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