要求:
            1、完成一个对水果仓库管理的简单系.。
            2、完成,增加、查询、修改简单的操作。
分析:
            1、首先我们要有进行分成分析  表层----操作层----底层;
            2、表层有什么 :可供操作的选项即(增、查、改);
            3、操作层有什么:完成不同的操作(读文件和写文件);
            4、底层有什么:完成数据的写出和读入;
步骤:
先完成如下javaproject的创建:

//下面为每个类中的具体内容(按我做改程序的顺须写的)
//Fruit
package VO;
import java.io.Serializable;
@SuppressWarnings("serial")
public class Fruit implements Serializable {
//属性
 private String name;
 private String area;
 private float   kg;
 //构造方法
 public Fruit(){}
 public Fruit(String name,String area,float kg){
  this.name =name;
  this.area =area;
  this.kg =kg; 
 }
 
 
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getArea() {
  return area;
 }
 public void setArea(String area) {
  this.area = area;
 }
 public float getKg() {
  return kg;
 }
 public void setKg(float kg) {
  this.kg = kg;
 }
 public String toString (){
  return "水果名:"+this.name +"  源产地:"+this.area+"  现重量:"+this.kg ;
 }
}
//主方法
package Main;
import Menu.Menu;
public class Main {
 //主方法
 public static void main(String[] args){
  System.out.println("简单的水果仓库管理系统");
  //调用Menu方法
  new Menu();
 }
}
//Menu
package Menu;
import OP.FruitOperate;
import Util.InputDate;
public class Menu {
 InputDate input= null;
 public Menu(){
  this.input=new InputDate();
  //循环出现菜单
  while (true){
   this.show();
  }
 }
 //需要定义的菜单内容
 private void show() {
  System.out.println("\t\t\t1、增加水果库存");    
        System.out.println("\t\t\t2、浏览库存信息");    
        System.out.println("\t\t\t3、修改库存信息");    
        System.out.println("\t\t\t4、注销管理系统");    
        System.out.print("\n\n请选择您要使用的操作:");    
        int temp = input.getInt();    
        switch(temp){    
        case 1:{  // 增加水果库存 
                new FruitOperate().add(); //业务处理层   
                break;    
        }    
        case 2:{ // 浏览库存信息 
                new FruitOperate().show();    
                break;    
        }    
        case 3:{ // 修改库存信息
                new FruitOperate().update();    
                break;    
        }    
        case 4:{ //注销管理系统
                System.out.println("注销中******************");    
                System.out.println("注销成功!");    
                System.exit(1);    
        }    
        default:{    //错误信息提示
                System.out.println("请选择正确的操作范围如下:");    
                break;    
        }    
 
        }
 }
}
//对度入数据的相关操作
package Util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class InputDate {
 
  private BufferedReader buf =null;    
     public InputDate(){    
             buf = new BufferedReader(new InputStreamReader(System.in));    
     };    
     public String getString(){    
             String str = null;    
             try {    
                     str = buf.readLine();    
             } catch (IOException e) {}    
             return str;    
     }    
 
  public int getInt(){    
         int temp = 0;    
         //如果输入的不是数字,告诉用户输入错了~    
         //可以使用正则验证    
         String str = null;    
         boolean flag = true;    
         while(flag){    
                 //输入数据    
                 str = this.getString();    
                 if (!(str.matches("\\d+"))){    
                         //如果输入的不是一个数字,则必须重新输入    
                         System.out.print("输入的内容必须是上面操作代号的范围,请重新输入:");    
                 }else{    
                         //输入的是一个正确的数字,则可以进行转换    
                         temp = Integer.parseInt(str);    
                         //表示退出循环    
                         flag = false;    
                 }    
         }    
         return temp;    
 }
 public float getFloat() {
  
     
        float f = 0.0f;    
        //如果输入的不是数字,提示告诉用户输入错了~    
        //可以使用正则验证    
        String str = null;    
        boolean flag = true;    
        while(flag){    
                //输入数据    
                str = this.getString();    
                if (!(str.matches("\\d+?.\\d{1,2}"))){    
                        //如果输入的不是一个数字,则必须重新输入    
                        System.out.print("输入的内容必须是小数(小数点后两位),请重新输入:");    
                }else{    
                        //输入的是一个正确的数字,则可以进行转换    
                        f = Float.parseFloat(str);    
                        //表示退出循环    
                        flag = false;    
                }    
        }    
        return f;    
}
  
}
///实现管理的方法类
package OP;
import Util.FileOperate;
import Util.InputDate;
import VO.Fruit;
public class FruitOperate {
   private InputDate input = null;    
      public FruitOperate(){    
              this.input = new InputDate();    
      }    
      //完成具体的Fruit对象操作    
      public void add(){    
              //要使用输入数据的类    
              String name = null;    
              String area = null;    
              float kg = 0.0f;    
              System.out.print("输入水果名:");    
              name = this.input.getString();    
              System.out.print("输入源产地:");    
              area = this.input.getString();                                 
              System.out.print("输入入库量:"); 
              kg = this.input.getFloat();
              //生成Fruit对象,把对象保存在文件中    
              Fruit f = new Fruit(name,area,kg);    
                         
              try{    
                      new FileOperate().save(f);    //io操作层
                      System.out.println("数据保存成功!");    
              }catch(Exception e){    
                      System.out.println("数据保存失败!");    
              }    
      }    
      public void show(){    
              //从文件中把内容读进来    
       Fruit f = null;    
              try{    
                      f = (Fruit) new FileOperate().read();    
              }catch(Exception e){    
                      System.out.println("内容显示失败,请确定数据是否存在!");    
              }    
              if(f != null){    
                      System.out.println(f);    
              }    
      }    
      public void update(){    
              //先将之前的信息查出来    
       Fruit f = null;    
              try{    
                      f = (Fruit) new FileOperate().read();    
              }catch(Exception e){    
                      System.out.println("内容显示失败,请确定数据是否存在!");    
              }    
              if(f != null){    
                      String name = null;    
                      String area = null;    
                      float kg =0.0f;    
                      System.out.print("请输入新的水果名(原水果名:"+f.getName()+")");    
                      name = this.input.getString();    
                      System.out.print("请输入新的源产地(原源产地:"+f.getArea()+")");    
                      area = this.input.getString();    
                      System.out.print("请输入新的库总量(原库总量:"+f.getKg()+")");    
                      kg = this.input.getFloat();  
                      
                      //信息重新设置    
                      f.setName(name);    
                      f.setArea(area);    
                      f.setKg(kg);    
                      try{    
                              new FileOperate().save(f);    
                              System.out.println("数据更新成功!");    
                      }catch(Exception e){    
                              System.out.println("数据更新失败!");    
                      }    
              }    
      }   
}
//底层操作  文件的读入和读出
package Util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class FileOperate {
 public static final String FILENAME = "E:\\fruit.txt";    
    //把对象保存在文件之中    
    public void save(Object obj){    
            ObjectOutputStream out = null;    
            try {    
                    out = new ObjectOutputStream(new FileOutputStream(new File(FILENAME)));    
                    //写入对象    
                    out.writeObject(obj);    
            }catch(Exception e){    
                    try {    
                            throw e;    
                    } catch (Exception e1) {}    
            }finally {    
                    try {    
                            out.close();    
                    }catch(Exception e){}    
            }    
    }    
    
    //把对象从文件之中读出来    
    public Object read() throws Exception{    
            Object obj = null;    
            ObjectInputStream input =null;    
            try {    
                    input = new ObjectInputStream(new FileInputStream(new File(FILENAME)));    
                    obj = input.readObject();    
            } catch (Exception e) {    
                    throw e;    
            }finally{    
                    try{    
                            input.close();                                 
                    }catch(Exception e){}    
            }    
            return obj;    
    }    
}
运行结果如下:


这篇文章只是一个原理  ,感谢阅读  希望能够提供宝贵意见!QQ:237333696