想做一个仓库货物管理程序,运行5个选项:1卖出物品信息2进货信息3搜索物品信息4列出所有物品5退出
现编译运行都通过,但是前三功能输入活吗会出现如图所示错误,功能4只会显示初值,不会显示data文件中的信息import java.io.*;
import java.util.*;
class Item
{
String Code=null;
String Name=null;
String Category=null;
String MadeBy=null;
double ImportPrice=0.0;
double SellPrice=0.0;
int TotalNumber=0;

Item(String Code,String Name,String Category,String MadeBy,double ImportPrice,double SellPrice,int TotalNumber)
{
Code=Code;
Name=Name;
Category=Category;
MadeBy=MadeBy;
ImportPrice=ImportPrice;
SellPrice=SellPrice;
TotalNumber=TotalNumber;
}
public void setCode(String co)
{
Code=co;
}
public void setName(String na)
{
Name=na;
}
public void setCategory(String ca)
{
Category=ca;
}
public void setMadeBy(String ma)
{
MadeBy=ma;
}
public void setImportPrice(double p)
{
ImportPrice=p;
}
public void setSellPrice(double p)
{
SellPrice=p;
}
public void setTotalNumber(int n)
{
TotalNumber=n;
}

public String getCode()
{
return Code;
}
public String getName()
{
return Name;
}
public String getCategory()
{
return Category;
}
public String getMadeBy()
{
return MadeBy;
}
public double getImportPrice()
{
return ImportPrice;
}
public double getSellPrice()
{
return SellPrice;
}
public int getTotalNumber()
{
return TotalNumber;
}
}public class Store
{
private static List<Item> item=new ArrayList<Item>();
public static void main(String[] args)throws IOException
{
{
readData();
showMenu();
}
}
public static void readData()
{
{
BufferedReader dataReader=null;
try
{
dataReader=new BufferedReader(new FileReader("data.txt"));
}
catch(Exception e)
{
System.out.println("File not found");
System.exit(1);
}
while(true)
{
String aline=null;
try
{
aline=dataReader.readLine();
}
catch(Exception e)
{
System.out.println("Cannot read file");
System.exit(1);
}
if(aline==null)break;
String s[]=aline.split(",");
String code=s[0].trim();
String name=s[1].trim();
String category=s[2].trim();
String madeBy=s[3].trim();
double importPrice=Double.parseDouble(s[4].trim());
double sellPrice=Double.parseDouble(s[5].trim());
int number=Integer.parseInt(s[6].trim());
Item anItem=new Item(code,name,category,madeBy,importPrice,sellPrice,number);
item.add(anItem);
}
}
}
private static void showMenu() 
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
boolean quit = true;
while(quit) 
{
System.out.println("1. Sell;");
System.out.println("2. Import;");
System.out.println("3. Search item;");
System.out.println("4. Print all items;");
System.out.println("5. Quit.");
Scanner in=new Scanner(System.in);
System.out.print("Please input your choice:");
int choice = in.nextInt();
switch(choice) 
{
case 1:sellItem();
break;
case 2:importItem();
break;
case 3:searchItem();
break;
case 4:printAllItems();
break;
case 5:System.out.println("System out.Thanks!");
quit=false;
break;
default:System.out.println("Error input.Please check out your input.");
break;
}
}
} public static void sellItem()
{
Scanner a=new Scanner(System.in);

String s=a.nextLine();
int i=0;
System.out.println("Please input a item code:");
while(!(item.get(i).getCode().equals(s)))
{                        
i++;
}
System.out.println("Please input the number for item sold out");
Scanner b=new Scanner(System.in);
int c=b.nextInt();
item.get(i).setTotalNumber(item.get(i).getTotalNumber()-c);
}
public static void importItem()
{
System.out.println("Please input a item code:");
Scanner a=new Scanner(System.in);
String s=a.nextLine();
int i=0;
while(!(item.get(i).getCode().equals(s)))
{                        
i++;
}
System.out.println("Please input the number for item imported:");
Scanner b=new Scanner(System.in);
int c=b.nextInt();
item.get(i).setTotalNumber(item.get(i).getTotalNumber()+c);
}
public static void searchItem()
{
System.out.println("Please input a item code:");
Scanner a=new Scanner(System.in);
String s=a.nextLine();
int i=0;
while(!(item.get(i).getCode().equals(s)))
{                     
i++;
}
System.out.println("The Code is: "+item.get(i).getCode());
System.out.println("The Name is: "+item.get(i).getName());
System.out.println("The Category is: "+item.get(i).getCategory());
System.out.println("It is madeBy: "+item.get(i).getMadeBy());
System.out.println("The ImportPrice is: "+item.get(i).getImportPrice());
System.out.println("The SellPrice is: "+item.get(i).getSellPrice());
System.out.println("The TotalNumber is: "+item.get(i).getTotalNumber());
}
public static void printAllItems()
{
for(int i=0;i<item.size();i++)
{
System.out.println("This is "+i+".");
System.out.println("The Code is: "+item.get(i).getCode());
System.out.println("The name is: "+item.get(i).getName());
System.out.println("The Category is: "+item.get(i).getCategory());
System.out.println("It is madeBy: "+item.get(i).getMadeBy());
System.out.println("The ImportPrice is: "+item.get(i).getImportPrice());
System.out.println("The SellPrice is: "+item.get(i).getSellPrice());
System.out.println("The TotalNumber is: "+item.get(i).getTotalNumber());
}
}

}

data.txt中信息如下
0385B, Bread, Food, Woolworths, 1.10, 1.50, 100
0324A, Cake, Food, Woolworths, 2.50, 3.50, 50
0245S, Strawberries, Fruit, Farmyard, 1.50, 2.00, 150
0456I, Icecream, Sweet, Ice hourse, 2.00, 2.89, 120
0375C, Noodle, Food, Noodle Hurt, 0.85, 1.35, 200

解决方案 »

  1.   

    楼主,已经在群里给你回答了。
     java技术交流群:52734945
      

  2.   

    图片显示不了
    图片内容如下:
    1.Sell;
    2.Import;
    3.Search item;
    4.Print all items;
    5.Quit.
    Please input your choice:3
    Please input a item code:
    0385B
    Exception in thread "main"java.lang.NullPointerException
                 at Store.searchItem<Store.java:202>
                 at Store.showMenu<Store.java:152>
                 at Store.main<Store.java:89>