一、导读

本文着重讲解java IO流如FileWriter,FileReader....

好文章 记得 收藏+点赞+关注 !!!

二、案例分析

停车场有 进场 和出场的功能:

  • 进场时:采用键盘录入的方式,录入汽车的品牌、颜色、车牌号,把品牌、颜色、车牌号,以及进场时间写入carInfo.txt文件中。
  • 出场时:键盘录入车牌号,去文件中查找该车的进场时间,并计算停车时间。
    30分钟内免费,过后每小时5元,超过一小时按一小时计算。

直接上代码!
三、代码以运行结果

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;/*** 案例要求:* 停车场有进场和出场的功能:* 1. 进场时:采用键盘录入的方式,录入汽车的品牌、颜色、车牌号,把品牌、颜色、车牌号,以及进场时间写入carInfo.txt文件中。* 2. 出场时:键盘录入车牌号,去文件中查找该车的进场时间,并计算停车时间。* 3. 30分钟内免费,过后每小时5元,超过一小时按一小时计算。** @author JIaMing* @since 2021/12/9/0009 下午 16:38**/public class Test01 {//入场功能public static void enter() throws IOException {//从键盘获取汽车信息并写入文件CarInfo.txtScanner scanner = new Scanner(System.in);ParkingLot parkingLot = new ParkingLot();System.out.println("请输入你的汽车的品牌");parkingLot.setBrand(scanner.nextLine());System.out.println("请输入你的汽车的颜色");parkingLot.setColor(scanner.nextLine());System.out.println("请输入你的汽车的车牌号");parkingLot.setNum(scanner.nextLine());//获取系统时间long now = System.currentTimeMillis();parkingLot.setTime(now + "");//写入文件File file = new File("D:\\carInfo.txt");//判断文件是否存在if (!file.exists()) {file.createNewFile();}FileWriter fw = new FileWriter(file, true);StringBuilder sb = new StringBuilder();sb.append(parkingLot.getBrand()).append(",").append(parkingLot.getColor()).append(",").append(parkingLot.getNum()).append(",").append(parkingLot.getTime()).append("\r\n");String s1 = sb.toString();fw.write(s1);//一定要关闭流fw.close();System.out.println("写入文件成功");}//出场功能public static void exit() throws IOException {//当离开停车场时,输入车牌号,从文件中匹配车牌号,计算总共停车时间File file = new File("D:\\carInfo.txt");FileReader fr = new FileReader(file);StringBuilder sb = new StringBuilder();int len;char[] arr = new char[1024];//新建一个ArrayListArrayList<ParkingLot> list = new ArrayList<>();while ((len = fr.read(arr)) != -1) {sb.append(arr, 0, len);}//读出文件内容System.out.println(sb);//分割出每一行String[] s = sb.toString().split("\r\n");//遍历sfor (String ss : s) {String[] split = ss.split(",");ParkingLot parkingLot = new ParkingLot(split[0], split[1], split[2], split[3]);list.add(parkingLot);}//与输入的车牌号对比System.out.println("输入你的车牌号");Scanner scanner = new Scanner(System.in);String inputNum = scanner.nextLine();String Time = "";String nowTime = "";//在CarInfo.txt中查找该车牌号的进场时间,计算总共停车时间for (ParkingLot p : list) {if (p.getNum().equals(inputNum)) {nowTime = System.currentTimeMillis() + "";Time = p.getTime();}}long duration = (Long.parseLong(nowTime) - Long.parseLong(Time)) / 1000 / 60;//调用方法,计算停车费computeCost(duration);fr.close();}//计算停车费public static void computeCost(long time) {if (time <= 30) {System.out.println("30分钟以内免费!,您停车了" + time + "分钟");} else if (time < 60) {System.out.println("您停车了" + time + "分钟,不足一小时,大于30分钟,收费5元");} else {long count = time / 60 + 1;System.out.println("超过一小时每小时5元收费:" + count * 5 + "元,您停车了" + time + "分钟");}}public static void main(String[] args) throws IOException {Scanner sc = new Scanner(System.in);for (; ; ) {System.out.println("请输入进场还是出场,0退出");String input = sc.nextLine();switch (input) {case "进场":enter();break;case "出场":exit();break;case "0":System.exit(0);default:System.out.println("输入不正确!,请重新输入");break;}}}
}

运行结果:


通过停车场计算车费案例练习JavaIO流相关推荐

  1. 策略模式 案例:计算车费

    案例:计算车费 思路: 我们提取一个公共Interface来计算费用三个不同类实现计费接口,再用一个公 共类管理三种不同车辆的计费功能 三种车辆费用共同点为计算车费 不同点为车辆类型不同 公交车费 出 ...

  2. Java------IO流与异常处理机制 详解

    IO流与异常处理机制 File类 File类的每一个实例可以表示硬盘(文件系统)中的一个文件或目录(实际上表示的是一个抽象路径) 使用File可以做到: 1:访问其表示的文件或目录的属性信息,例如:名 ...

  3. javaio流层次结构_流的多层次分组

    javaio流层次结构 1.简介 使用Java 8流,可以很容易地根据不同的标准对对象集合进行分组. 在这篇文章中,我们将看到如何从简单的单级分组到更复杂的,涉及多个级分组的分组. 我们将使用两个类来 ...

  4. JavaIO流加解密,AES对字符串加解密

    加解密文件? 哈哈哈哈,当然是为了安全,自己的东西不像让别人看见. 1,学了JavaIO流的字节流的读取写入,便可实现. 加密原理: 把文件读取,然后,按某个特定的规则改变其字节写入一个新文件. 解密 ...

  5. JavaIO流中的拷贝

    JavaIO流中对数据的操作尤为重要,掌握了基本的拷贝操作,才能将各种数据源的操作联系起来. 先来看看对文件夹的拷贝吧: 1 /** 2 * 利用递归实现文件夹的拷贝操作 3 * 分析:判断 4 * ...

  6. 计算年龄案例(JS)

    计算年龄案例(JS) <!DOCTYPE html> <html lang="en"><head><meta charset=" ...

  7. Java从入门到精通十一(javaIO流)

    Java从入门到精通十一(javaIO流) IO引入 字节流和字符流(一些说明) 字节流没有用到缓冲区并不是没有用到内存 为什么输入流是读数据,而输出流是写数据? 字节流说明 字节输入流读数据的方法 ...

  8. Flink大数据实时计算系列-案例初体验:HotPages

    Flink大数据实时计算系列-案例初体验:HotPages 目录 HotPages代码 输入日志 运行结果 HotPages代码 /*** Copyright (c) 2018-2028 尚硅谷 Al ...

  9. 【JavaIO流】JavaIO中的常用处理流

    JavaIO中的常用处理流 在前面,我们了解了有关JavaIO流基础的使用,其中对于IO流来说最基础的四大基类就是InputStream.OutputStream.Reader.Writer.而我们对 ...

最新文章

  1. 多线程(十、AQS原理-ReentrantLock公平锁)
  2. Linux文件属性和权限
  3. 吴恩达机器学习(第四章)——多变量线性回归
  4. 数据库概述(了解数据库,当前数据库介绍,mysql数据库介绍,安装mysql数据库)
  5. Linux系统 iptables 和 firewalld 的那些事
  6. 剑指offer 菲波那切数列
  7. Spark入门实战系列--8.Spark MLlib(上)--机器学习及SparkMLlib简介
  8. Python3判断是否为回文数
  9. Assembly中Load, LoadFrom, LoadFile以及AppDomain, Activator类中相应函数的区别
  10. 神舟战神怎么装win11系统
  11. python爬虫什么意思-Python为什么叫爬虫?Python与爬虫有什么关系?
  12. 依据经纬度解析商圈scala实现
  13. WPS 2019 用户界面分析
  14. 论文查重 降重复度?
  15. pytho读文件| python文件去重 | python去除重复行
  16. Prometheus 结合cAdvisor、AlertManager、node-exporter 监控容器并实现邮箱告警
  17. 使用多种算法挖掘Alexa域名数据
  18. 运用HTML5进行文字排版详解
  19. Java入门(一)java中的分隔符号
  20. 如何申请成为企业微信,并成为第三方服务商

热门文章

  1. PowerDesigner简介(Yanlz+CDM+PDM+OOM+BPM+DMM+EAM+FEM+LDM+RQM+XSM+立钻哥哥++++)
  2. ABAP ASSIGN 的用法
  3. 快被垃圾分类逼疯的上海人民,有望被区块链解救吗?
  4. 什么高大填空四个字动人_什么的香气填空四个字
  5. 《杜拉拉升职记》第二部,一本失败的小说,一本中层管理的最佳实践手册
  6. Java判断一个字符串中是否包含中文字符工具类
  7. pikachu+SQL注入+Burp Suit
  8. 目标检测的Tricks | 【Trick2】自动混合精度(Automatic mixed precision)
  9. 巨杉数据库sequoiadb笔记
  10. fatal: loose object...is corrupt解决方法