停车场有进场和出场的功能
1. 进场时:采用键盘录入的方式,录入汽车的品牌、颜色、车牌号。
把品牌、颜色、车牌号,以及进场时间写入car.txt文件中。

2. 出场时:键盘录入车牌号,去文件中查找该车的进场时间,并计算停车时间。

3. 30分钟内免费,过后每小时3元,超过一小时安一小时计算。

 
创建一个停车场类,用来记录汽车的 品牌,颜色,车牌号,以及 进场时间.
  /*把品牌、颜色、车牌号,以及进场时间*/
public class Tinchechang {
private String brand;
private String color;
private String num;
private String time; public Tinchechang() {
} public Tinchechang(String brand, String color, String num, String time) {
this.brand = brand;
this.color = color;
this.num = num;
this.time = time;
} @Override
public String toString() {
return "Tinchechang{" +
"brand='" + brand + '\'' +
", color='" + color + '\'' +
", num='" + num + '\'' +
", time='" + time + '\'' +
'}';
} public String getBrand() {
return brand;
} public void setBrand(String brand) {
this.brand = brand;
} public String getColor() {
return color;
} public void setColor(String color) {
this.color = color;
} public String getNum() {
return num;
} public void setNum(String num) {
this.num = num;
} public String getTime() {
return time;
} public void setTime(String time) {
this.time = time;
}
}
 import java.io.*;
import java.util.ArrayList;
import java.util.Scanner; /*
* 停车场有进场和出场的功能
1. 进场时:采用键盘录入的方式,录入汽车的品牌、颜色、车牌号。
把品牌、颜色、车牌号,以及进场时间写入car.txt文件中。 2. 出场时:键盘录入车牌号,去文件中查找该车的进场时间,并计算停车时间。 3. 30分钟内免费,过后每小时3元,超过一小时安一小时计算。
* */
public class Mainclass {
public static void main(String[] args) throws IOException {
ArrayList<Tinchechang> arrayList = new ArrayList<>(); Scanner sc = new Scanner(System.in);
for(;;){
System.out.println("请输进场还是出场,输入y or n\n输入0退出");
String inpuStr =sc.nextLine();
if (inpuStr.equals("y")){
//进场
ruChang();
}
else if (inpuStr.equals("n")){
//出场
chuChang();
}
else if(inpuStr.equals("0")){
System.exit(0);
}
else
System.out.println("输入不正确!,请重新输入"); } } private static void chuChang() throws IOException {
/*出场时:键盘录入车牌号,去文件中查找该车的进场时间,并计算停车时间。*/
ArrayList<Tinchechang> arrayList = new ArrayList<>();
File file = new File("C:\\ideaProjects\\job-code\\day09\\src\\老王的题\\car.txt");
FileReader fr = new FileReader(file);
StringBuilder sb = new StringBuilder();
int len;
char arr[] = new char[1024];
while((len=fr.read(arr))!=-1){
sb.append(arr,0,len);
}
System.out.println(sb);
// System.out
// .println("测试代码 等待删除");
//切割每一行
String[] sp1 = sb.toString().split("\r\n");
for (String line : sp1) {
String[] array = line.split(",");
Tinchechang tc = new Tinchechang(array[0],array[1],array[2],array[3]);
arrayList.add(tc);
}
//请求输入比对
System.out.println("请输入你的车牌号");
Scanner sc = new Scanner(System.in);
String inputSring = sc.nextLine();
String Time="";
String nowTime="";
/*出场时:键盘录入车牌号,去文件中查找该车的进场时间,并计算停车时间。*/
for (Tinchechang tcs : arrayList) {
if(tcs.getNum().equals(inputSring)){
nowTime=System.currentTimeMillis()+"";
Time = tcs.getTime();
}
}
long realTime = (Long.parseLong(nowTime)-Long.parseLong(Time))/1000/60;
/*30分钟内免费,过后每小时3元,超过一小时安一小时计算。*/
// System.out.println("realTime = "+realTime);
getPrice(realTime);
fr.close();
}
/*
* 计算价格
* */
private static void getPrice(long realTime) {
if(realTime<=30){
System.out.println("30分钟以内免费!,您停车了"+realTime+"分钟");
}
else if(realTime>30 && realTime <60)
{
System.out.println("30-60收费3元,您停车了"+realTime+"分钟");
}
else {
long count = realTime/60+1;
System.out.println("超过一小时每小时3元收费:"+count*3+"元,您停车了"+realTime+"分钟");
}
} private static void ruChang() throws IOException {
/* 1. 进场时:采用键盘录入的方式,录入汽车的品牌、颜色、车牌号。
把品牌、颜色、车牌号,以及进场时间写入car.txt文件中。*/
Scanner sc = new Scanner(System.in); Tinchechang tc = new Tinchechang();
System.out.println("请输入汽车的品牌");
tc.setBrand(sc.nextLine());
System.out.println("请输入汽车的颜色");
tc.setColor(sc.nextLine());
System.out.println("请输入汽车的车牌号");
tc.setNum(sc.nextLine());
//获取系统时间
long nowTime = System.currentTimeMillis();
tc.setTime(nowTime+"");
//写入文件
File file = new File("C:\\ideaProjects\\job-code\\day09\\src\\老王的题\\car.txt");
//写入
FileWriter wf = new FileWriter(file,true);
StringBuilder sb = new StringBuilder();
sb.append(tc.getBrand()).append(",").append(tc.getColor()).append(",").append(tc.getNum()).append(",").append(tc.getTime()).append("\r\n");
wf.write(sb.toString());
wf.close();
System.out.println("写入成功!");
}
}

JAVA IO练习的更多相关文章

  1. java.IO输入输出流:过滤流:buffer流和data流

    java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...

  2. Java:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  3. Java IO之字符流和文件

    前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字 ...

  4. java Io流向指定文件输入内容

    package com.hp.io; import java.io.*; public class BufferedWriterTest{ public static void main(String ...

  5. java Io文件输入输出流 复制文件

    package com.hp.io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java ...

  6. java Io流更新文件内容

    package com.hp.io; import java.io.FileOutputStream; import java.io.IOException; public class FileOut ...

  7. java IO流详解

    流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  8. java.io.NotSerializableException: test.io.file.Student

    java.io.NotSerializableException: test.io.file.Student    at java.io.ObjectOutputStream.writeObject0 ...

  9. java.io.IOException: mark/reset not supported

    java.io.IOException: mark/reset not supported at java.io.InputStream.reset(InputStream.java:348) at ...

  10. Java IO流学习总结

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

随机推荐

  1. idea软件破解汉化

    →http://idea.lanyus.com/上可以找到最新的破解补丁,下载并放到软件的bin目录下  →更改bin目录下的两个文件:Idea.exe.vmoptions和Idea64.exe.vm ...

  2. Benchmarking Apache Kafka: 2 Million Writes Per Second (On Three Cheap Machines)

    I wrote a blog post about how LinkedIn uses Apache Kafka as a central publish-subscribe log for inte ...

  3. SQL NULL 函数

    SQL ISNULL().NVL().IFNULL() 和 COALESCE() 函数 请看下面的 "Products" 表: P_Id ProductName UnitPrice ...

  4. SQL CREATE INDEX 语句

    CREATE INDEX 语句用于在表中创建索引. 在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据. 索引 您可以在表中创建索引,以便更加快速高效地查询数据. 用户无法看到索引,它们只 ...

  5. Android开发欢迎页点击跳过倒计时进入主页

    没点击跳过自然进入主页,点击跳过之后立即进入主页     1.欢迎页布局activity_sp.xml放一张背景图(图片随你便啦)再放一个盛放倒计时的TextView   <?xml versi ...

  6. try/catch中finally的执行时间

    前言 由于总是搞不清楚try/catch中的一个执行顺序,返回结果.所以总结一下 1.finally没有return 时,可以看出finally确实在return之前执行了 public static ...

  7. 理论篇-Java中一些零碎的知识点

    1. Java中length,length方法,size方法区别 length属性:用于获取数组长度. length方法:用于获取字符串长度. size方法:用于获取泛型集合有多少个元素. 2. is ...

  8. 拜托!面试请不要再问我Spring Cloud底层原理

    概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓 ...

  9. BS架构和CS架构的区别

    C/S架构的优缺点: *优点: 1.客户端因为是独立设计,所以可以实现个性化 2.因为客户端是需要进行安装的,可以不需要重复安装和加载 3.因为客户端是独立开发的,所以有能力对客户端进行安全设计 4. ...

  10. Kubernetes — 为什么我们需要Pod?

    不过,我相信你在学习和使用 Kubernetes 项目的过程中,已经不止一次地想要问这样一个问题:为什么我们会需要 Pod? 是啊,我们在前面已经花了很多精力去解读 Linux 容器的原理.分析了 D ...