首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java输入文件循环

Java输入文件循环
EN

Stack Overflow用户
提问于 2013-11-26 21:05:04
回答 1查看 2.2K关注 0票数 0

我有一个文件,上面写着

办公室1 3. 39 7 39 7 39 6.5 办公室2 2 19 8 19 8

这显示了它是哪个办公室,下一个数字是该办公室的经理人数,然后是每项工作的小时数,然后是他们每周的收入。

我正在尝试创建一个循环,这样我的java文件就可以读取小时数,然后乘以小时费率,然后将其保存为双倍,然后移动到下一个办公室,然后在以后的程序中使用双数,然后当它到达我知道如何从文件中读取的最后一个办公室时,循环就会结束,我只是很难得到一个循环,它可以完成我上面指定的任务。

任何帮助都将不胜感激,非常感谢!

编辑.

代码语言:javascript
复制
public static void main(String[] args) throws FileNotFoundException 
{
Scanner inFile = new Scanner(new FileReader("ExternalData.txt"));
String name;
double employees;
double OfficeRate; 
double OfficeHours; 
double OfficeRate2; 
double OfficeHours2; 
double OfficeRate3; 
double OfficeHours3; 
double OfficeRate4; 
double OfficeHours4; 
name = inFile.nextLine (); 
employees = inFile.nextDouble(); 
OfficeRate = inFile.nextDouble(); 
OfficeHours = inFile.nextDouble();
OfficeRate2 = inFile.nextDouble(); 
OfficeHours2 = inFile.nextDouble();
OfficeRate3 = inFile.nextDouble(); 
OfficeHours3 = inFile.nextDouble();
OfficeRate4 = inFile.nextDouble(); 
OfficeHours4 = inFile.nextDouble();
double Employee1 = OfficeRate * OfficeHours;
double Employee2 = OfficeRate2 * OfficeHours2;
double Employee3 = OfficeRate3 * OfficeHours3;
double Employee4 = OfficeRate4 * OfficeHours4;

double weeklypay = Employee1 + Employee2 + Employee3 + Employee4;

这样做不会让我弄错,但是它应该比它应该长的更好?

EN

回答 1

Stack Overflow用户

发布于 2013-11-27 21:14:43

很抱歉迟了回复,我已经为你写了完整的代码,所以请理解这是如何完成的。

无论如何,如果文件包含数百个office条目,则当前的操作方式是无效的。

只需确保您有完整的文件内容,如您在Post中所示。如果缺少了什么,那么下面的代码可能会得到崩溃,或者给出意外的结果。

下面是您完成以下要求的代码。在这种情况下,您将无法从文件中保存任何数据,因为您不能使用Arrays。如果您可以使用ArrayList,那么就可以使用它来存储文件数据。

代码语言:javascript
复制
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerReadFile {

    public static void main(String[] args) {

        // Location of file to read
        File file = new File("Your File Path");

        try {

            Scanner scanner = new Scanner(file);
            scanner.useDelimiter("\\s+");
            String line;
            String office = null;

            while (scanner.hasNext()) {
                line = scanner.next();
                if (line.equalsIgnoreCase("Office")) {
                    office = line + scanner.next();
                    // System.out.println(office);
                    continue;
                } else {
                    int empCount = Integer.parseInt(line);

                    double weeklyPay = 0.0;
                    for (int i = 0; i < empCount; i++) {
                        double empPay = Double.parseDouble(scanner.next())
                                * Double.parseDouble(scanner.next());
                        System.out.println("Employee pay: " + empPay);
                        weeklyPay += empPay;
                    }
                    System.out.println("All Employee pay: " + weeklyPay
                            + " for " + office);
                }
            }
            scanner.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

    }
}

如果你有什么问题告诉我。祝好运。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20227937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档