import java.util.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.text.Collator;
import java.util.Comparator;
import java.util.Locale;
public class Library
{
Scanner sc=new Scanner(System.in);
public int curLen;
public Book []books;
File file=new File("图书信息.txt");
File clfile=new File("其余信息.txt");
Comparator cmp=Collator.getInstance(java.util.Locale.CHINA);
public Library()
{
books=new Book[100000];
curLen=0;
ReaderFile(file);
}
//写文件
public void WriteFile(File file,Book books,boolean tf)
{
try
{
String s[];
FileWriter outOne=new FileWriter(file,tf);
BufferedWriter outTwo= new BufferedWriter(outOne);
String str=books.getName()+","+books.getISBN()+","+books.author+","+books.getPrice();
outTwo.write(str);
outTwo.newLine();
outTwo.close();
outOne.close();
}
catch(Exception e){
}
}
//读文件
public void ReaderFile(File file)
{
try
{
FileReader inOne=new FileReader(file);
BufferedReader inTwo= new BufferedReader(inOne);
String s=null;
while((s=inTwo.readLine())!=null) {
String[] st= s.split(",");
String bookName=st[0];
String ISBN=st[1];
String CBS=st[2];
String price=st[3];
books[curLen]=new Book(bookName,ISBN,CBS,price);
// System.out.println("正在加载数据"+this.curLen+"--->>>");
curLen++;
}
inOne.close();
inTwo.close();
}
catch(Exception e){System.out.println("读文件异常222");}
}
//add
public void append()
{
System.out.println("请输入书名:");
String name=sc.next();
System.out.println("请输入作者:");
String author=sc.next();
System.out.println("请输入ISBN编号:");
String ISBN=sc.next();
System.out.println("请输入该书的价格:");
String price=sc.next();
Book book=new Book(name,author,ISBN,price);
this.add(book);
}
public void add(Book book)//增加图书的方法
{
if(this.curLen!=books.length)
{
books[curLen]=new Book();
books[curLen]=book;
this.curLen++;
WriteFile(file,book,true);
WriteFile(clfile,new Book("增加后结果如下:","总计:"+this.curLen,"继续加油","奋斗每一天"),false);
for(int i=0;i<curLen;i++)
{
WriteFile(clfile,books[i],true);//数据更新到处理结果文件
}
System.out.println("增加完成,请打开——>处理结果.txt文档查看");
}
else
{
System.out.println("数组已满,添加失败");
}
}
public void showLibrary()
{
for(int i=0;i<this.curLen;i++)
System.out.println(books[i].toString());
}
private int search(String name)//无序按姓名查找
{
for(int i=0;i<this.curLen;i++)
{
if(books[i].getName().equals(name)==true)
{
return i;
}
}
return -1;
}
public void serach(String name)
{
int index=search(name);
if(index==-1)
{
WriteFile(clfile,new Book("没有你要找的书","请重新查找","",""),false);
}
WriteFile(clfile,books[index],false);
}
public void mhSearch(String name)//按姓名模糊查找
{
int count=0;
WriteFile(clfile,new Book("加载文件","从:"+this.curLen,"本图书中搜索","结果如下"),false);
for(int i=0;i<this.curLen;i++)
{
if(books[i].getName().contains(name)==true)
{
System.out.println("#######已搜到"+count+++"本图书-->>>");
WriteFile(clfile,books[i],true);
}
}
}
public void remove(String name)
{
int index=search(name);
if(index==-1)
{
System.out.println("删除失败,无该图书请重新尝试");
}
else
{
books[index]=books[curLen--];
WriteFile(file,new Book("对原数据进行:","更新","总计:"+this.curLen,"加油"),false);//将数据更新到原文件
WriteFile(clfile,new Book("删除后结果如下:","总计:"+this.curLen,"",""),false);
for(int i=0;i<curLen;i++)
{
WriteFile(clfile,books[i],true);//数据更新到处理结果文件
WriteFile(file,books[i],true);//将数据更新到原文件
}
System.out.println("删除完成,请打开——>处理结果.txt文档查看");
}
}
public void qSort()//简单选择排序
{
Book temp;
for(int i=0;i<curLen;i++)
{
int min =i;
for(int j=i+1;j<curLen;j++)
if(cmp.compare(books[i].getName(),books[j].getName())<0)
min=j;
if(min!=i)
{
temp=books[i];
books[i]=books[min];
books[min]=temp;
}
}
}
//顺序表快排
*/
public static void main(String[] args)
{
Library li=new Library();
}
}
public class Book
{
public String name;
public String ISBN;
public String author;
public String price;
public Book()
{
}
public Book(String N,String I,String A,String P)
{
this.name=N;
this.ISBN=I;
this.author=A;
this.price=P;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getISBN() {
return ISBN;
}
public void setISBN(String iSBN) {
ISBN = iSBN;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String toString()
{
return "名字:"+name+"编号:"+ISBN+"作者:"+author+"价格:"+price;
}
}