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.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class 作业1 {
public static List<Book> bookList = new ArrayList<>();
public static void main(String[] args) throws Exception {
File file = new File("book.txt");
System.out.println(file.length());
if (file.length() > 0) {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
bookList = (List<Book>) ois.readObject();
}
while (true) {
System.out.println("欢迎访问图书管理系统" + "\t");
System.out.println("\t" + "1.添加图书");
System.out.println("\t" + "2.修改图书");
System.out.println("\t" + "3.查看所有图书");
System.out.println("\t" + "4.退出");
System.out.print("请选择:");
Scanner sc = new Scanner(System.in);
String choose = sc.next();
switch (choose) {
case "1":
add();
break;
case "2":
update();
break;
case "3":
select();
break;
case "4":
exit();
break;
default:
System.err.println("您的输入错误!请重新输入");
}
}
}
private static void add() throws FileNotFoundException, IOException, ClassNotFoundException {
Scanner sc = new Scanner(System.in);
System.out.print("请输入你要添加的图书的书名:");
String bookName = sc.nextLine();
System.out.print("请输入你要添加的图书的价格:");
Double price = sc.nextDouble();
bookList.add(new Book(bookName, price));
System.out.println("添加成功!");
System.out.println();
}
private static void exit() throws FileNotFoundException, IOException, ClassNotFoundException {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("book.txt"));
oos.writeObject(bookList);
System.out.println("下次再见");
System.exit(0);
}
private static void select() throws FileNotFoundException, IOException, ClassNotFoundException {
//
for (Book book : bookList) {
System.out.print("书名---");
System.out.print(book.getBookName());
System.out.print("\t" + "价格---");
System.out.println(book.getPrice());
}
}
private static void update() throws Exception {
System.out.print("请输入要修改的书名");
Scanner sc = new Scanner(System.in);
String bookName = sc.next();
for (int i = 0; i < bookList.size(); i++) {
Book book = bookList.get(i);
if (bookName.equals(book.getBookName())) {
System.out.print("请输入想要修改的价格:");
double price = sc.nextDouble();
bookList.add(new Book(book.getBookName(), price));
bookList.remove(book);
System.out.println("修改成功");
return;
}
}
System.err.println("没有这本书。。。");
}
}
附:
Book类
import java.io.Serializable;
public class Book implements Serializable{
private String bookName;
private Double price;
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public Book(String bookName, Double price) {
super();
this.bookName = bookName;
this.price = price;
}
public Book() {
super();
}
@Override
public String toString() {
return "Book [bookName=" + bookName + ", price=" + price + "]";
}
}