档案员。txt包含两类员工的详细信息,即月薪和小时津贴。如果是月薪员工,则该文件包含名字、姓氏、性别、职级、类型和基本工资,如果是小时薪员工,则包含小时工资和工作小时数。该文件的示例如下所示:
约翰·史密斯M经理每月45000.00
Sunil Bates M高级每小时700.00 45
梁爱娃F警官每月30500.00
我要写一个程序,会看每个员工,计算奖金占基本工资的百分比,对于一个按小时计酬的员工,基本工资取小时工资乘以当月工作小时数。如果级别是“官员”,奖金率为20%,如果级别是高级或以上,奖金率为15%。该程序应写入一个新文件TotalSalary.txt每个员工的全部详细信息,即姓名、性别和总工资(即奖金)。
以下是我如何计算出来的:
将员工数据写入文本文件类
public class files_qu1 {
public static Formatter writein;
private static Scanner sc;
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
writein= new Formatter("Employees.txt");
}
catch(SecurityException se){
System.out.println("You do have access to this file");
System.exit(1);
}
catch(FileNotFoundException fnfe){
System.out.println("Error in creating file");
System.exit(1);
}
Scanner sc= new Scanner(System.in);
String fname, lname, gender, rank, type;
double salary, t_sal, hours=0.0;
int num;
System.out.println("Enter num of employees");
num= sc.nextInt();
for(int i=0; i<num; i++){
System.out.println("First name: ");
fname=sc.next();
System.out.println("Last name: ");
lname=sc.next();
System.out.println("Gender: ");
gender=sc.next();
System.out.println("Rank: ");
rank=sc.next();
System.out.println("Type: ");
type=sc.next();
System.out.println("Salary: ");
salary=sc.nextDouble();
if(type.equals("hourly")){
System.out.println("Hours worked: ");
hours=sc.nextInt();
}
writein.format(" %s %s %s %s %s %.2f %.2f\n",fname, lname, gender, rank, type, salary, hours);
}
sc.close();
if(writein!=null){
writein.close();
}
}
}
从Employees文本文件到TotalSalary文本文件类读取和计算数据
public class files_qu1read {
private static Formatter writeToFile;
private static Scanner sc;
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
sc= new Scanner(new File("C:/Users/Diksha/workspace/Java_Sem1/Employees.txt"));
}
catch
(FileNotFoundException fnfe){
System.out.println("Error Creating File");
System.exit(1);
}
String fname = null, lname, gender, rank, type;
double salary, t_sal = 0, hours;
while(sc.hasNext()){
fname=sc.next();
lname=sc.next();
gender=sc.next();
rank=sc.next();
type=sc.next();
salary=sc.nextDouble();
hours=sc.nextDouble();
if(type.equals("hourly")){
t_sal= salary*hours;
}
if(type.equals("monthly")&&rank.equals("officer")){
t_sal= salary*1.2;
}
if(type.equals("monthly")&&(rank.equals("senior")||rank.equals("manager"))){
t_sal= salary*1.15;
}
try{
writeToFile = new Formatter("TotalSalary.txt");
}
catch (SecurityException se) {
System.out.println("You do have access to this file");
System.exit(1);
}
catch (FileNotFoundException fnfe) {
System.out.println("Error Creating File");
System.exit(1);
}
writeToFile.format("First name: %s Last name: %s Gender: %s Total Salary: %.2f",fname,lname, gender, t_sal);
}
sc.close();
if(writeToFile!=null){
writeToFile.close();
}
}
}
基本上,一切正常,程序能够写入员工文本文件,但当涉及到向TotalSalary文件读取和写入数据时,只有我写入员工文件的最后一名员工的名字被写入TotalSalary文件,以及他的总工资。
如果员工。txt文件包含以下数据:
Riley Fox f经理每月45000.00
艾米丽·罗斯f警官每小时10000.00 8.00
在工资总额中。txt,显示的唯一数据是最后一名员工的数据,即:
姓名:艾米丽姓氏:罗斯性别: f总工资: 80000.00
每次您创建要写入的格式时,文件都会被创建或覆盖。因此任何内容都会丢失。请阅读Javadoc:
您可以在循环之外创建格式化程序
try{
writeToFile = new Formatter("TotalSalary.txt");
}
catch (SecurityException se) {
System.out.println("You do have access to this file");
System.exit(1);
}
catch (FileNotFoundException fnfe) {
System.out.println("Error Creating File");
System.exit(1);
}
while(sc.hasNext()){
...
重复使用它,直到程序结束,最后关闭它。您始终可以使用“资源试用”格式。
问题内容: 我需要一些帮助:我正在用Java进行超市仿真,但是有一个问题,我有一个文本文件(Stock.txt),例如,我在上面有所有的超市库存: 0-面包巧克力蛋糕-$ 12.5-250 1-Meat-Premium Steak- $ 2.6-120 2海鲜金枪鱼-1.2-14美元 … 第一个数字是产品的“ id”,第二个是产品所属的部门,第三个是产品名称,第二个是价格,最后一个数字是库存的产品
我正在MySQL中存储文本文件,并将其从Java读入项目文件。我在这方面面临一个问题。我正在保存3个文件,每个文件包含992行。但当我读取并将其保存回java项目文件夹时,两个文件被写成每行993行,最后一行是空字符串。 对此如何化解? 这里是我的代码读取和写入项目文件夹。 我正在附上可以访问这些文件的链接。文件1文件2文件3 这是密码
我正在尝试转换一个大的文本文件(大小为5 gig),但得到了一个从这篇文章中,我设法将文本文件的编码格式转换为可读的格式: 这里的问题是,当我试图转换一个大尺寸(5 GB)的文本文件时。我会得到这个错误 我知道它无法读取这么大的文件。我从几个链接中发现,我可以逐行阅读。 那么,我如何应用于我必须让它逐行读取的代码呢?我对逐行读取的理解是,我需要从中读取一行,并将其添加到中,直到行尾,对吗?
我正在阅读一个用一些分隔符分隔的文本文件。 我的文本文件内容示例 Avc def efg JKSJD 1 2 3 5 3 4 6 0 每次调用createRow和createCell时是否都会创建新对象? 如果是,有什么替代方案?。如何以更好的性能将大数据写入excel?
问题内容: 是否可以将JSON数据保存到本地文本文件中?因此,稍后我可以通过加载该文件再次使用它,并取回存储的JSON数据。其实我真正想做的是在文本文件中导出JSON数据,以便以后可以用作import.Any的建议或解决方案? 这是我要用于导出到文本的一些示例。 http://jsfiddle.net/k56eezxp/ 问题答案: 是否可以将JSON数据保存到本地文本文件中? 是。当前,链接的j
目前,我只能阅读一个excel文档,并用我得到的代码编写相同的文档。现在我想读取多个excel文档并将数据写入其中。现在我得到了一个清晰的代码,这样做到一个文档,但这不是我想要的。我理解我目前得到的代码的结构,所以我更喜欢继续使用它。如何使用函数和函数来实现这一点? 这是我到目前为止所拥有的: 不是很好的编码...但它有效...