package service;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
import dao.BookDao;
import pojo.Book;
public class BookService {
private ArrayList bookList = new ArrayList();
private BookDao bDao = new BookDao();
public ArrayList getBookList() {
return bookList;
}
public BookService() {
bookList = bDao.file2Object();
}
//添加图书
public void add(String title, String author){
bookList.add(new Book(bookList.size() + 1,title,author));
}
//删除图书
public boolean remove(int num){
boolean flag = true;
int size = bookList.size();
for(int i = 0; i < size; i++){
Book b = (Book)bookList.get(i);
if(num == b.getNum()){
bookList.remove(i);
flag = false;
break;
}
}
return flag;
}
//借阅
public String borrow(String title){
int size = bookList.size();
for(int i = 0; i < size; i++){
Book b = (Book)bookList.get(i);
if(b.getTitle().equals(title)){ //找到要借的书
if(b.isBorrow()){//判断是否可借
b.setBorrow(false); //设置为已借出
b.setTime(b.getTime() + 1); //增加借阅次数
return "成功借出";
}else{
return "此书已借出";
}
}
}
return "查无此书";
}
//归还
public String back(String title){
int size = bookList.size();
for(int i = 0; i < size; i++){
Book b = (Book)bookList.get(i);
if(b.getTitle().equals(title)){
if(!b.isBorrow()){
b.setBorrow(true);
return "归还成功";
}else{
return "此书未借出";
}
}
}
return "查无此书";
}
//查询
public Book search(String title){
Book book = null;
int size = bookList.size();
for(int i = 0; i < size; i++){
Book b = (Book)bookList.get(i);
if(b.getTitle().indexOf(title) > -1){
book = b;
break;
}
}
return book;
}
//排行榜
public void sort(){
//得到一共有多少本书
Collections.sort(bookList);
System.out.println("编号\t书名\t作者\t是否可借\t借阅次数");
int size = bookList.size();
for(int i = 0; i < size; i++){
Book b = (Book)bookList.get(i);
System.out.println(b.getNum()+"\t"+b.getTitle()+"\t"+b.getAuthor()+"\t"+(b.isBorrow()?"可借":"已借出")+"\t"+b.getTime());
}
}
public void save(){
FileWriter fw = null;
try {
fw = new FileWriter("d:/books.txt"); //建立程序到文件的通道,文件不存在,则新建文件
int size = bookList.size();
for(int i = 0; i < size; i++){
Book b = (Book)bookList.get(i);
String content = b.getNum()+","+b.getTitle()+","+b.getAuthor()+","+b.isBorrow()+","+b.getTime()+"\r\n";
fw.write(content); //想问文件里写内容
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
fw.close(); //关闭通道
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void read() {
File f = new File("d:/books.txt"); //实例化books.txt这个文件的对象
if(f.exists()){ //判断文件是否存在
FileReader fr = null;
BufferedReader br = null;
try {
fr = new FileReader("d:/books.txt"); //建立文件读取通道
br = new BufferedReader(fr); //实例化通道增强类
String content = null;
// while((content = br.readLine()) != null){ //循环读取文件中每一行,直到读取内容为空
// String[] info = content.split(",");
// Book b = new Book();
// b.setNum(Integer.parseInt(info[0]));
// b.setTitle(info[1]);
// b.setAuthor(info[2]);
// b.setBorrow(Boolean.parseBoolean(info[3]));
// b.setTime(Integer.parseInt(info[4]));
// this.bookList.add(b);
// }
do{
content = br.readLine();
String[] info = content.split(",");
Book b = new Book();
b.setNum(Integer.parseInt(info[0]));
b.setTitle(info[1]);
b.setAuthor(info[2]);
b.setBorrow(Boolean.parseBoolean(info[3]));
b.setTime(Integer.parseInt(info[4]));
this.bookList.add(b);
}while(content != null);
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
br.close(); //关闭通道
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public void object2File() {
// TODO Auto-generated method stub
bDao.object2File(bookList);
}
}