五、
我的是mac系统,如果是win文件名需要更改
package com.gemxhq;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
public class Q5File {
// 不要忘记抛出异常
public static void main(String[] args) throws IOException {
File f = new File("sample.txt");
if (!f.exists()) {
System.out.println("sample.txt file is not exists.");
System.exit(1);
}
// 统计文件大小超过100000KB的文件个数
int count = 0;
// 使用hashmap来存储不同格式文件的数量
HashMap<String, Integer> hm = new HashMap<>();
// 加载文件流
Scanner r = new Scanner(f);
// 每一行数据
while (r.hasNext()) {
// 每一项数据
String date = r.next();
String time = r.next();
long size = r.nextLong();
String title = r.next();
// 获取文件后缀名。切记要加斜杠\\转义,不然无效
String postfix= title.split("\\.")[1].toLowerCase();
// 统计相应格式文件数量
if (hm.containsKey(postfix)) {
hm.put(postfix, hm.get(postfix) + 1);
}else {
hm.put(postfix, 1);
}
// 计算100000KB大小的文件个数
if (size > 100000) count++;
}
// 显示不同格式文件的数量
Iterator<String> iterator = hm.keySet().iterator();
while (iterator.hasNext()) {
String filetype = iterator.next();
System.out.println("filetype:" + filetype + ",count:" + hm.get(filetype));
}
// 显示文件大小超过100000KB
System.out.println("文件大小超过100000KB的文件个数:" + count);
}
}
六、
设计类的结构
Vehicle:
// 定义抽象类
public abstract class Vehicle {
// 收费单价
int price;
// 收费总额
abstract int fee(int hour);
}
Bus:
/**
* 客车
*/
// 类实现继承
public class Bus extends Vehicle {
int price = 15;
@Override
int fee(int hour) {
return this.price * hour;
}
}
Truck:
/**
* 货车
*/
public class Truck extends Vehicle {
int price = 12;
@Override
int fee(int hour) {
return this.price * hour;
}
}
Car:
/**
* 轿车
*/
public class Car extends Vehicle{
int price = 3;
@Override
int fee(int hour) {
return this.price * hour;
}
}
测试类Parker:
import java.util.Scanner;
public class Parker {
// 方法体现封装
public int chargeFees() {
System.out.println("请输入您的车辆类型:1.客车(15r/hour) 2.货车(12r/hour) 3.轿车(3r/hour)");
Scanner scan = new Scanner(System.in);
int type = scan.nextInt();
System.out.println("停车时间是:(hour)");
int hour = scan.nextInt();
// 多态的体现
Vehicle vehicle = null;
switch (type) {
case 1:
vehicle = new Bus();
// break切记不要少
break;
case 2:
vehicle = new Truck();
break;
case 3:
vehicle = new Car();
break;
}
int fees = vehicle.fee(hour);
System.out.println("收取费用为:" + fees);
return fees;
}
public static void main(String[] args) {
// 匿名对象,因为我们只需要知道费用
int fees = new Parker().chargeFees();
}
}