停车场有进场和出场的功能
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. spark-2.4.0-hadoop2.7-简单操作

    1. 说明 本文基于:spark-2.4.0-hadoop2.7-高可用(HA)安装部署 2. 启动Spark Shell 在任意一台有spark的机器上执行 # --master spark://m ...

  2. LeetCode算法题-Degree of an Array(Java实现)

    这是悦乐书的第294次更新,第312篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第162题(顺位题号是697).给定一个由正整数组成的非空数组,该数组的度数被定义为任意 ...

  3. OKR源自德鲁克和格鲁夫,跟谷歌是天作之合:4星|《这就是OKR》

    这就是OKR,[美]约翰杜尔(John Doerr),中信出版社,9787508696881 作者以实习生的身份加入英特尔,跟格鲁夫有交集,见证了格鲁夫在英特尔创立OKR的过程和英特尔使用OKR作为管 ...

  4. linux ssh免密登陆远程服务器

    10.170.1.18服务器免密登录到10.170.1.16服务器 首先登入一台linux服务器(10.170.1.18),此台做为母机(即登入其他linux系统用这台做为入口):执行一行命令生成ke ...

  5. JavaScript面向对象—基本数据类型和引用数据类型的区别和变量及作用域(函数和变量)

    基本类型和引用类型的值 ECMAScript 变量可能包含两种不同的数据类型的值:基本类型值和引用类型值. 基本类型值指的是那些保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置. 而引用 ...

  6. Java list 转字符串并加入分隔符的方法

    import org.apache.commons.lang.StringUtils; List<String> list=new ArrayList<String>(); l ...

  7. day16--包的认识、循环导入、绝对导入、相对导入、模块的搜索路径等(待续)

    ''' 一系列功能模块的集合体 -- 包就是管理功能相近的一系列模块的文件夹 -- 该文件夹包含一个特殊文件__init__.py -- 文件夹名就是包名,产生的包名就是指向__init__.py的全 ...

  8. Exp6 信息搜集与漏洞扫描 20165110

    Exp6 信息搜集与漏洞扫描 20165110 一.实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 二.实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描 ...

  9. Redis入门之增删改查等常用命令总结

    Redis是用C语言实现的,一般来说C语言实现的程序"距离"操作系统更近,执行速度相对会更快. Redis使用了单线程架构,预防了多线程可能产生的竞争问题. 作者对于Redis源代 ...

  10. docker(一) Centos7下安装docker

    docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...