首页 > 解决方案 > java的数组列表

问题描述

所以,这是我必须回答的问题:

在 Payroll 类中,添加一个标题为 private int computePay(Programmer p) 的方法。该方法应返回程序员的成绩乘以他们工作的小时数。例如,如果程序员的等级是 2,他们工作的总小时数是 6,那么该方法应该返回 12。

但我对这个论坛的问题是,我如何获得 txt。包含的文件Firstname Secondname,paygrade(Out of 3),hours,hours,hours,hours,hours,hours

(txt。示例;

)

为了使成绩部分与他们的工作时间分开,这样我就可以使用

private int computePay(Programmer p){
   return p.grade*p.hours;
}

我可能对此感到困惑,或者倒退,但任何类型的指导方针都会有所帮助。

标签: javaarrayscollectionsfilesystems

解决方案


那么有两种方法可以将数据存储在 .txt 文件中:

  1. 您可以将对象放入对象流中,然后简单地将其写入文本文件。

     FileOutputStream out = new FileOutputStream("test.txt");
     ObjectOutputStream oout = new ObjectOutputStream(out);
    
     // write something in the file
     oout.writeObject(s);
    
     // close the stream
     oout.close();
    
  2. 可悲的是,格式化会非常糟糕,您无法自己读取数据。而且这种方法确实不一致。你需要你的类来实现Serializable. 此外,您的 java 代码中的任何更改都将停止读取该文件。

所以我会去尝试一下,你只存储名称,然后是那些时间。然后,逐行阅读:

String s = "Sean Dyke,3,34,54,67,78,34,12"
String[] entries = s.split(",");

String name = entries[0];
Integer[] hours = new Integer[entries.length -1];

for(int i = 0; i < hours; i++){
    hours[i] = Integer.parseInt(entries[i + 1]);
}

这可能会解析一行。对代码txt文件中的每一行都这样做,你应该没问题。


推荐阅读