美发店管理系统,跑起来以后readOobject()会报错ObjectInputStream$BlockDataInputStream.peekByte

Clair_Miya 2018-12-22 06:46:46
package JavaProject;

import java.awt.EventQueue;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Scanner;
/*
18、美发店管理系统
题目描述:
设计完成对美发店的简单管理。
功能需求:
(1) 定义顾客类,属性有:会员卡号、姓名、性别、电话等信息和相关的对属性做操作的行为。
(2) 定义员工类:属性有:编号、姓名、性别、电话、美发项目(理发、烫发、洗发)等信息和相关的对属性做操作的行为。
(3) 定义美发类:属性有各种美发项目的收费标准和相关的对属性做操作的行为。
(4) 定义一个管理类。
(5) 添加、删除、修改、查询顾客信息和雇员信息,要求编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加;删除、修改、查询时,如果没有对应人员记录,则提示“记录为空!”并返回操作。
(6) 使用外部文件或数据库存储相关数据。
*/
public class HairSalon {
static Scanner scan=new Scanner(System.in);
private int object;

private boolean i=true;

public static void main(String args[])
{

HairSalon newObject=new HairSalon();

System.out.println("1.客户\t 2.员工\t3.价格表\t请输入对象:");

newObject.object=scan.nextInt();//输入对象
if(newObject.object==1) newObject.Cu_set();
else if(newObject.object==2) newObject.Em_set();
}

public void Cu_set()
{
//对象是顾客时
J_Customer customer= new J_Customer();

System.out.println("1.添加\t2.删除\t3.修改\t4.查询\t请输入操作序号:");
int operate=scan.nextInt();//输入操作数
ObjectInputStream readFile=null;
ObjectOutputStream InFile=null;
try {
InFile = new ObjectOutputStream(new FileOutputStream("Customer.data"));
readFile=new ObjectInputStream(new FileInputStream("Customer.data"));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}


if(operate==1)//添加顾客信息
{
try {

customer.Cu_add(scan);
if(!customer.Cu_search(readFile, customer.Cu_CardNumber))
{
InFile.writeObject(customer);
InFile.flush();
customer.Cu_ouput();
}
else System.out.println("编号为"+customer.Cu_CardNumber+"已存在!");
}catch (IOException e) {
e.printStackTrace();
}
}
else if(operate==2)//删除顾客信息
{
try {
System.out.println("请输入您的VIP编码:");
String cardNumber=scan.nextLine();
if(customer.Cu_search(readFile, cardNumber))
{
J_Customer deleteCustomer=null;
try {
deleteCustomer = (J_Customer)(readFile.readObject());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(deleteCustomer.Cu_CardNumber.equals(cardNumber));
{
customer.Cu_delete();
customer.Cu_ouput();
}
}
else System.out.println("查无编号为"+cardNumber+"的客户!");
} catch (IOException e) {
e.printStackTrace();
}
}
else if(operate==3)//修改
{
try {
System.out.println("请输入您的VIP编码:");
String cardNumber=scan.nextLine();

if(customer.Cu_search(readFile, cardNumber))
{
J_Customer deCustomer=null;
try {
deCustomer = (J_Customer)(readFile.readObject());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while(deCustomer.Cu_CardNumber.equals(cardNumber));
{
customer.Cu_add(scan);
InFile.writeObject(customer);
customer.Cu_ouput();
}
}
else System.out.println("查无编号为: "+cardNumber+"的客户信息!");
} catch (IOException e) {
e.printStackTrace();
}
}

else if(operate==4)//查询
{
try {
System.out.println("请输入您的VIP编码:");
String cardNumber=scan.nextLine();

if(customer.Cu_search(readFile, cardNumber))
{
J_Customer deCustomer=null;
try {
deCustomer = (J_Customer)(readFile.readObject());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while(deCustomer.Cu_CardNumber.equals(cardNumber)) customer.Cu_ouput();
}
else System.out.println("查无编号为: "+cardNumber+"的客户信息!");
}
catch (IOException e) {
e.printStackTrace();
}
}


}

public void Em_set()
{

J_Employee employee= new J_Employee();

System.out.println("1.添加\t2.删除\t3.修改\t4.查询\t请输入操作序号:");
int operate=scan.nextInt();//输入操作数
ObjectOutputStream InFile=null;
ObjectInputStream readFile=null;
try {
InFile = new ObjectOutputStream(new FileOutputStream("Employee.data"));
readFile=new ObjectInputStream(new FileInputStream("Employee.data"));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

if(operate==1)//添加
{
try {
employee.Em_add(scan);
if(!employee.Em_search(readFile, employee.Em_CardNumber))
{
InFile.writeObject(employee);
InFile.flush();
employee.Em_ouput();
}
else System.out.println("编号"+employee.Em_CardNumber+"已存在!");
} catch (IOException e) {
e.printStackTrace();
}
}
else if(operate==2)//删除
{
try {
System.out.println("请输入您的VIP编码:");
String cardNumber=scan.nextLine();
if(employee.Em_search(readFile, cardNumber))
{
J_Employee deemployee=null;
try {
deemployee = (J_Employee)(readFile.readObject());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while(deemployee.Em_CardNumber.equals(cardNumber));
{
employee.Em_delete();
employee.Em_ouput();
}
}
else System.out.println("查无员工编号为: "+cardNumber+"的信息!");
} catch (IOException e) {
e.printStackTrace();
}
}
else if(operate==3)//修改
{
try {
System.out.println("请输入您的VIP编码:");
String cardNumber=scan.nextLine();
if(employee.Em_search(readFile, cardNumber))
{
J_Employee deemployee=null;
try {
deemployee = (J_Employee)(readFile.readObject());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while(deemployee.Em_CardNumber.equals(cardNumber));
{
employee.Em_add(scan);
InFile.writeObject(employee);
employee.Em_ouput();
}
}

} catch (IOException e) {
e.printStackTrace();
}
}
else if(operate==4)
{
try {
System.out.println("请输入您的VIP编码:");
String cardNumber=scan.nextLine();
if(employee.Em_search(readFile, cardNumber))
{
J_Employee deemployee=null;

try {
deemployee = (J_Employee)(readFile.readObject());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while(deemployee .Em_CardNumber.equals(cardNumber)); employee.Em_ouput();
}
}catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}
}
}

class J_Customer implements Serializable
{
public String Cu_CardNumber;
public String Cu_Name;
public String Cu_Gender;
public String Cu_PhoneNumber;

public boolean Cu_search(ObjectInputStream f,String nu)//搜索文件是否有此号码
{
J_Customer c=null;
try {
do
{
c=(J_Customer)(f.readObject());
if(c.Cu_CardNumber.equals(nu)) return true;//找得到回复true
}while(true);
}
catch (ClassNotFoundException | IOException e) {
e.printStackTrace();
}
return false;//找不到回复false
}


public void Cu_ouput()
{
System.out.println("会员卡号 : "+Cu_CardNumber);
System.out.println("姓名 : "+Cu_Name);
System.out.println("性别 : "+Cu_Gender);
System.out.println("电话号码 : "+Cu_PhoneNumber);
}

public void Cu_add(Scanner scan)
{
System.out.print("请输入会员卡号:");
Cu_CardNumber=scan.next();
System.out.print("请输入姓名:");
Cu_Name=scan.next();
System.out.print("请输入性别:");
Cu_Gender=scan.next();
System.out.print("请输入电话号码:");
Cu_PhoneNumber=scan.next();

}
public void Cu_delete()
{
Cu_CardNumber=null;
Cu_Name=null;
Cu_Gender=null;
Cu_PhoneNumber=null;
}

}

class J_Employee implements Serializable
{
public String Em_CardNumber;
public String Em_Name;
public String Em_Gender;
public String Em_PhoneNumber;
public String Project;

public boolean Em_search(ObjectInputStream f,String nu)//搜索文件是否有此号码
{
J_Employee E=null;
try {
do
{
E=(J_Employee)(f.readObject());
if(E.Em_CardNumber.equals(nu)) return true;
}while(true);
}
catch (ClassNotFoundException | IOException e) {
e.printStackTrace();
}
return false;
}


public void Em_delete() {
Em_CardNumber=null;
Em_Name=null;
Em_Gender=null;
Em_PhoneNumber=null;
Project=null;
}

public void Em_ouput()
{
System.out.println("员工编号 : "+Em_CardNumber);
System.out.println("员工姓名 : "+Em_Name);
System.out.println("员工性别 : "+Em_Gender);
System.out.println("员工电话号码 : "+Em_PhoneNumber);
//????
System.out.println("员工项目: "+ Project);
}

public void Em_add(Scanner scan)
{
System.out.print("请输入员工编号:");
Em_CardNumber=scan.next();
System.out.print("请输入员工姓名:");
Em_Name=scan.next();
System.out.print("请输入员工性别:");
Em_Gender=scan.next();
System.out.print("请输入员工电话号码:");
Em_PhoneNumber=scan.next();
//?????
System.out.println("员工项目: ");
Project=scan.next();

}
}




...全文
513 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
捏造的信仰 2018-12-26
  • 打赏
  • 举报
回复
楼主要学会贴代码
public class Demo {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("no args.");
}
}
}
像楼主的代码层级多,又没有排版,没法看。
qq_39936465 2018-12-25
  • 打赏
  • 举报
回复
你全程都没有关流操作吧
天涯若风 2018-12-24
  • 打赏
  • 举报
回复
对象序列化出了问题

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧