package shop.src;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;
public class BookShop {
//商品的管理类
/*
* 实现读取商品信息文件
* ShowBook()方法展示所有的商品信息
*实现原理解释
*第一步:读取商城文件
*第二步:展示商品
* Buybook()方法实现购买商品
* 第一步:读取商城文件
* 更改某种商品的信息
* 把更改后的信息保存在商城文件中
* 第二步:把购买信息存入用户的购买文件中
* */
private String path;
//获取文件的路径
public String GetProjectPath() throws IOException{
File directory = new File("");//参数为空
String FilePath=null;
FilePath = directory.getCanonicalPath();
return FilePath;
}
public Map<Integer, Book> ShowBook() throws IOException
{
path = GetProjectPath()+File.separator+"BookShop.txt";
BufferedReader in= new BufferedReader(new FileReader(path));
String content = "8";
int key = 0;
Map<Integer, Book> map = new LinkedHashMap<Integer, Book>();//这里泛型都是用对象的,基本类型不可
Book BookInfo = new Book();
Book Book1 = new Book();
while(content!=null)
{
content = in.readLine();
if(content != null){
BookInfo.autoDisassemble(content);
System.out.println("while key:"+key+";BOOK:"+Book1.atuoEncapsulation());
key++;
}
}
Book1=map.get(0);
System.out.println("key:"+0+";BOOK:"+Book1.atuoEncapsulation());
return map;
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;
public class BookShop {
//商品的管理类
/*
* 实现读取商品信息文件
* ShowBook()方法展示所有的商品信息
*实现原理解释
*第一步:读取商城文件
*第二步:展示商品
* Buybook()方法实现购买商品
* 第一步:读取商城文件
* 更改某种商品的信息
* 把更改后的信息保存在商城文件中
* 第二步:把购买信息存入用户的购买文件中
* */
private String path;
//获取文件的路径
public String GetProjectPath() throws IOException{
File directory = new File("");//参数为空
String FilePath=null;
FilePath = directory.getCanonicalPath();
return FilePath;
}
public Map<Integer, Book> ShowBook() throws IOException
{
path = GetProjectPath()+File.separator+"BookShop.txt";
BufferedReader in= new BufferedReader(new FileReader(path));
String content = "8";
int key = 0;
Map<Integer, Book> map = new LinkedHashMap<Integer, Book>();//这里泛型都是用对象的,基本类型不可
Book BookInfo = new Book();
Book Book1 = new Book();
while(content!=null)
{
content = in.readLine();
if(content != null){
BookInfo.autoDisassemble(content);
map.put(key, BookInfo);
//这里有bug,在java中除了基本类型以外,其他的都是存入的地址,这里Bookinfo是一个对象的地址,因为一直使用的是一个对象,所以地址是没有变化的,不用的key值后面,更寻的都是同一一个地址,所以在去数据的时候,都是得到的相同数据
解决办法定义对象数组
Book1=map.get(key);System.out.println("while key:"+key+";BOOK:"+Book1.atuoEncapsulation());
key++;
}
}
Book1=map.get(0);
System.out.println("key:"+0+";BOOK:"+Book1.atuoEncapsulation());
return map;
}
}