JAVA IO练习
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练习的更多相关文章
- java.IO输入输出流:过滤流:buffer流和data流
java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...
- Java:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- Java IO之字符流和文件
前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字 ...
- java Io流向指定文件输入内容
package com.hp.io; import java.io.*; public class BufferedWriterTest{ public static void main(String ...
- java Io文件输入输出流 复制文件
package com.hp.io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java ...
- java Io流更新文件内容
package com.hp.io; import java.io.FileOutputStream; import java.io.IOException; public class FileOut ...
- java IO流详解
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- java.io.NotSerializableException: test.io.file.Student
java.io.NotSerializableException: test.io.file.Student at java.io.ObjectOutputStream.writeObject0 ...
- java.io.IOException: mark/reset not supported
java.io.IOException: mark/reset not supported at java.io.InputStream.reset(InputStream.java:348) at ...
- Java IO流学习总结
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
随机推荐
- MySql 学习之路-高级2
目录: 1.约束 2.ALTER TABLE 3.VIEW 1.约束 说明:SQL约束用于规定表中的数据规则,如果存在违反约束的数据行为,行为会被约束终止,约束可以在建表是规定,也可以在建表后规定,通 ...
- hadoop dfs.datanode.du.reserved 预留空间配置方法
对于datanode配置预留空间的方法 为:在hdfs-site.xml添加如下配置 <property> <name>dfs.datanode.du.reserved< ...
- jquery中数组对象下面的属性名名是动态的如何获取
<script> let normalListData = []; function temp() { for (var i = 0; i < 10; i++) { let rowC ...
- 使用 ESP8266 制作 WiFi 干扰器 - 无需密码即可使用任何 WiFi
嘿,朋友,我是 Kedar,你有没有想阻止所有的 WiFi信号?或者只是想从 WiFi 踢某人或邻居 WiFi .那么,本玩法是你等待结束的时刻了.这是为你提供的.仅需 $8 的 DIY Wifi 干 ...
- ESP8266当中继
WiFi推原理(转) http://jb.tongxinmao.com/Article/Detail/id/412 https://www.anywlan.com/thread-409913-1-1. ...
- zabbix相关
链接:https://pan.baidu.com/s/1gjwZrJGCYM1NWJhhK7IhiQ 密码:76nm
- C# Json字符串保存信息
1.我们在进行数据通信的时候,往往是需要传输一个字符串类型的参数,而这个字符串类型的参数又需要封装大量的数据信息. 这个时候,就需要使用Json来封装这些数据,最后将Json数据以字符串的格式输出 2 ...
- Git以一个远程分支为基础新建一个远程分支(转载)
例如现在有两个分支,master和develop git checkout master //进入master分支git checkout -b frommaster //以master为源创建分支f ...
- richedit缩放
本程序下载地址: 要使文本在richedit控件上进行放大缩小,可以通过设置字体的大小,从而来达到缩放文本的目的. 下面是一个例子:通过调整滚动条,从而控制richedit文本缩放. 程序运行结果如下 ...
- Gdi绘图
在使用VC开发项目过程中,界面是项目中的一个子模块.虽然界面并不那么重要,把握住核心功能就可以了,但界面美观与否直接关系到用户的体验, 因此我们也应该关注界面的处理. 我们可以在OnEraseBkgn ...