从键盘上输入客户资料:姓名、地址、电话号码,然后保存到Reader.txt文件里

知识点:输入输出处理

import java.io.*;
public class Lesson8D2
{
	String dName;
	String dAddress;
	String dPhone;	
	InputStreamReader kReader;
	BufferedReader bReader;
	FileOutputStream fWrite;
	
	public Lesson8D2()
	{
		try
		{
			kReader=new InputStreamReader(System.in);
			bReader=new BufferedReader(kReader);
			
			System.out.println("Dealer Name:");
			dName=bReader.readLine();
			System.out.println("Dealer Address:");
			dAddress=bReader.readLine();
			System.out.println("Dealer Phone:");
			dPhone=bReader.readLine();			
			
			kReader.close();
			bReader.close();
			fWrite=new FileOutputStream("Dealer.txt",true);
			
			String temp=dName+":"+dAddress+":"+dPhone"\n";
			fWrite.write(temp.getBytes());
			
			fWrite.close();			
		}
		catch(FileNotFoundException e)
		{
			System.out.println("The not exist "+e);
		}
		catch(IOException e)
		{
			System.out.println("Error: "+e);
		}
	}
	public static void main(String ar[])
	{
		Lesson8D2 obj=new Lesson8D2();
	}
}
好的,这是一个涉及到文件操作和排序算法的问题,我可以给你提供一些思路和代码示例。 首先,我们需要定义一个职工类,包含姓名、性别、基本工资和绩效工资四个属性: ```java public class Employee { private String name; private String gender; private double baseSalary; private double performanceSalary; public Employee(String name, String gender, double baseSalary, double performanceSalary) { this.name = name; this.gender = gender; this.baseSalary = baseSalary; this.performanceSalary = performanceSalary; } public double getTotalSalary() { return baseSalary + performanceSalary; } // 省略 getter 和 setter 方法 } ``` 接下来,我们需要从键盘输入职工信息,创建职工对象,并把职工信息保存文件中: ```java import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class EmployeeManager { private List<Employee> employees = new ArrayList<>(); public void addEmployee() { Scanner scanner = new Scanner(System.in); System.out.print("请输入职工姓名:"); String name = scanner.next(); System.out.print("请输入职工性别:"); String gender = scanner.next(); System.out.print("请输入职工基本工资:"); double baseSalary = scanner.nextDouble(); System.out.print("请输入职工绩效工资:"); double performanceSalary = scanner.nextDouble(); Employee employee = new Employee(name, gender, baseSalary, performanceSalary); employees.add(employee); try { BufferedWriter writer = new BufferedWriter(new FileWriter("employees.txt", true)); writer.write(name + "," + gender + "," + baseSalary + "," + performanceSalary); writer.newLine(); writer.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 注意:这使用了 BufferedWriter 和 FileWriter 类来写入文件,其中 BufferedWriter 是对 FileWriter 的包装,可以提供缓冲区,提高写入效率。 最后,我们需要按照职工总工资从高到低排序,并输出结果: ```java import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.Collections; import java.util.Comparator; public class EmployeeManager { // 省略 addEmployee() 方法 public void sortEmployees() { try { BufferedReader reader = new BufferedReader(new FileReader("employees.txt")); String line = null; while ((line = reader.readLine()) != null) { String[] fields = line.split(","); String name = fields[0]; String gender = fields[1]; double baseSalary = Double.parseDouble(fields[2]); double performanceSalary = Double.parseDouble(fields[3]); Employee employee = new Employee(name, gender, baseSalary, performanceSalary); employees.add(employee); } reader.close(); } catch (IOException e) { e.printStackTrace(); } Collections.sort(employees, new Comparator<Employee>() { @Override public int compare(Employee e1, Employee e2) { return Double.compare(e2.getTotalSalary(), e1.getTotalSalary()); } }); for (Employee employee : employees) { System.out.println(employee.getName() + "\t" + employee.getGender() + "\t" + employee.getTotalSalary()); } } } ``` 这使用了 Collections.sort() 方法来对职工列表进行排序,排序规则是按照职工总工资从高到低排序。 完整代码示例:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值