Library类和readWrite以及clear方法的问题

时间:2017-08-19 12:04:33

标签: java interface comparable

我正在尝试完成我上一个学校项目,我正在设置一个处理书籍,书籍集合(我们称之为图书馆)的应用程序,以及这些课程的UI客户端

我正在研究两种给我带来麻烦的方法:执行文件i / o功能的 writeToFile 方法(从其数据文件中读取书籍,将书籍写入同一数据文件) )和清除方法,它清除名为 allBooks 的ArrayList。应用程序本身有一个名为Citable的接口,一个名为 Book 的类。 ,一个图书馆类,提供基本访问者(书籍数量,指定位置的书籍),提供搜索和添加/删除功能(按ISBN搜索,添加所有详细信息的书籍,按ISBN删除书籍)

问题在于我尝试设置这两个类(在库类中),所以我可以重用其他两个类的代码,并且我正在寻找想法关于如何使经验丰富的程序员更好地编写代码(而且老实说,对于一个不那么疲惫的编码器来检查我的代码)。这是我到目前为止所做的:

Citable Class(这是一个接口):

/**
 * Write a description of interface Citable here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public interface Citable
{
    public String getISBN();
    public String getAuthor();
    public String getTitle();
    public String getPublisher();
    public int getPublicationYear();
    public int getMonth();
    public int getDay();
    public int getPageCount();
}

书类:

import java.util.*;
public class Book implements Comparable<Book>, Citable
{
    String isbn, title, author, publisher;
    int publicationYear, month, day, pageCount; 
    /**
     * Constructor for objects of class Book
     */
    public Book(String title, String isbn)
    {
        this.title = title;
        this.isbn  = isbn;
    }

    public String toString (){
        return isbn + "\n" + title + "\n" + author + "\n" + publisher + 
        "\n" + publicationYear + "\n" + month + "\n" + day;
    }

    @Override
    public int compareTo(Book other) {
       return isbn.compareTo(other.isbn);
    }

    @Override
    public String getISBN() {
        return isbn;
    }

    @Override
    public String getAuthor(){
        return author;
    }

    @Override
    public String getTitle(){
        return title;
    }

    @Override
    public String getPublisher(){
        return publisher;
    }

    @Override
    public int getPublicationYear(){
        return publicationYear;
    }

    @Override
    public int getMonth(){
        return month;
    }

    @Override

    public int getDay(){
        return day;
    }

    @Override

    public int getPageCount(){
        return pageCount;
    }

    //other methods from your interfaces here...
}

图书馆类:

import java.util.*;
import java.io.*;

public class Library
{
    private ArrayList<Book> allBook = new ArrayList<Book>();

    public Library(ArrayList<Book> other) {
    if (other == null) {
        throw new NullPointerException("null pointer");
    } else
        allBook = other;
    }

    public int getCounter (int counter) {
        return counter;
    }

    public String findISBN (String isbn){
        return isbn;
    }
    public String deleteISBN (String isbn){
        return isbn;
    }
    public String findBook (String title){
        return title;
    }
    public boolean readWrite (File file){
        super.writeToFile(file);
        try {
            FileWriter outFileFW = new FileWriter(file, true);
            outFileFW.write(nextISBNIndex + "\r\n");
            for (int isbnIdx = 0; isbnIdx < nextIsbnIndex; isbnIdx++) {
                outFileFW.write(books[isbnIdx] + "\r\n");
            }
            outFileFW.close();
        } catch (IOException e) {
            return false;
        }
        return true;
    }
    public void clear() {
    for (int i = 0; i < size; i++)
        arraylist[i] = null;

    size = 0;
}

}

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

假设你需要图书馆应用程序。你可以将你的应用程序重建为类似的东西:

id
uid=1000(pi) gid=1000(pi) Gruppen=1000(pi),4(adm),20(dialout),27(sudo),33(www-data),44(video),100(users),998(docker),999(gpio)

并在主方法中添加书籍或删除,读取和写入数据文件。