我正在制作一个名为 Book 的类,它代表具有标题、作者和年份的书籍,当他们获得奖项时。
我有一个 getList 方法,它应该从 csv 文件中读取数据,如果一行不遵循模式标题、作者、年份,那么应该将一条消息写入标准错误流。我无法确定如何指定错误消息。
我可以使用 BufferedReader 读取文件
但是,当验证所有 3 个值(标题、作者、年份)时,我不知道从哪里开始。我想我需要 3 个变量来检查 csv 的其中一行是否缺少(年份、作者等)。我是缓冲阅读器的新手,不知道该怎么做。任何帮助表示赞赏
我已经在互联网上查看并没有找到我正在寻找的确切内容
package books;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;
public class Book implements Comparable<Book> {
private String title;
private String author;
private int year;
/**
* @param title
* @param author
* @param year
*/
public Book(String title, String author, int year) {
this.title = title;
this.author = author;
this.year = year;
}
public String getTitle() {
return title;
}
public String getAuthor() {
return author;
}
public int getYear() {
return year;
}
@Override
public String toString() {
return title + " by " + author + " (" + year + ")";
}
public static List<Book> getList(String file) {
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
while (reader.ready()) {
System.out.println(reader.readLine());
}
System.out.println();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
public int compareTo(Book o) {
// TODO Auto-generated method stub
return 0;
}
}
测试应用
package books;
public class BookApp {
public static void main(String[] args) {
Book book = new Book ("Harry Potter and the Sorcerer's Stone", "J. K. Rowling", 1997);
System.out.println(book.toString());
System.out.println();
book.getList("src/books/books.csv");
}
}