创建Book类成员属性有书号,书名,作者,价格,出版社,出版年份创建该类的10个对象将这10个对象存入excel文件并读出到List集合中Java
时间: 2024-06-10 11:04:47 浏览: 223
Java创建对象的几种方法
非常感谢您的提问。
关于您的问题,我可以为您提供一些思路。
首先,我们需要创建一个Book类,其中包含一些成员属性,如书号、书名、作者、价格、出版社、出版年份。这可以通过以下代码实现:
```
public class Book {
private String bookNo;
private String bookName;
private String author;
private double price;
private String publisher;
private int publishYear;
// 构造函数
public Book(String bookNo, String bookName, String author,
double price, String publisher, int publishYear) {
this.bookNo = bookNo;
this.bookName = bookName;
this.author = author;
this.price = price;
this.publisher = publisher;
this.publishYear = publishYear;
}
// getter 和 setter 方法
// ...
}
```
然后,我们可以创建10个Book对象,存入一个List集合中。接着,我们需要将这些Book对象存入Excel文件中。这可以通过使用Apache POI和JXL等库来实现。
以下是一个示例代码,演示如何将10个Book对象存入Excel文件中,并在读取Excel文件后将这些Book对象读取到List集合中。
```
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class Main {
public static void main(String[] args) throws IOException {
// 创建10个Book对象
List<Book> books = new ArrayList<>();
books.add(new Book("001", "Java编程思想", "Bruce Eckel", 98.0,
"机械工业出版社", 2007));
books.add(new Book("002", "深入浅出设计模式", "程杰", 59.0,
"电子工业出版社", 2010));
books.add(new Book("003", "Head First 设计模式", "Freeman, Eric and Susa", 85.0,
"中国电力出版社", 2009));
books.add(new Book("004", "Effective Java", "Joshua Bloch", 78.0,
"人民邮电出版社", 2008));
books.add(new Book("005", "大话设计模式", "程杰", 46.0,
"人民邮电出版社", 2016));
books.add(new Book("006", "算法导论", "Thomas H. Cormen", 88.0,
"机械工业出版社", 2013));
books.add(new Book("007", "高性能MySQL", "Baron Schwartz", 103.0,
"人民邮电出版社", 2014));
books.add(new Book("008", "Java并发编程实战", "Brian Goetz", 69.0,
"机械工业出版社", 2012));
books.add(new Book("009", "编程珠玑", "Jon Bentley", 49.0,
"人民邮电出版社", 2007));
books.add(new Book("010", "设计模式:可复用面向对象软件的基础", "Erich Gamma", 99.0,
"人民邮电出版社", 2007));
// 将10个Book对象存入Excel文件中
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("books");
// 写入表头
HSSFRow headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("书号");
headerRow.createCell(1).setCellValue("书名");
headerRow.createCell(2).setCellValue("作者");
headerRow.createCell(3).setCellValue("价格");
headerRow.createCell(4).setCellValue("出版社");
headerRow.createCell(5).setCellValue("出版年份");
// 写入数据
int rowIndex = 1;
for (Book book : books) {
HSSFRow row = sheet.createRow(rowIndex++);
row.createCell(0).setCellValue(book.getBookNo());
row.createCell(1).setCellValue(book.getBookName());
row.createCell(2).setCellValue(book.getAuthor());
row.createCell(3).setCellValue(book.getPrice());
row.createCell(4).setCellValue(book.getPublisher());
row.createCell(5).setCellValue(book.getPublishYear());
}
// 保存Excel文件
File file = new File("books.xls");
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream outputStream = new FileOutputStream(file);
workbook.write(outputStream);
outputStream.close();
// 从Excel文件中读取Book对象到List集合中
List<Book> bookList = new ArrayList<>();
// ...
}
}
```
上述代码中的写入Excel文件的部分使用了Apache POI库(版本为3.17)。如果您的开发环境中没有该库,请根据实际情况进行安装,并将相关类的导入语句添加到代码中。在读取Excel文件的部分,我们可以使用Apache POI、JXL或其他支持读取Excel文件的库。
在这里,我建议您使用Apache POI库来读取Excel文件中的数据。以下是一个读取Excel文件的示例代码:
```
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class Main {
public static void main(String[] args) throws IOException {
// 从Excel文件中读取Book对象到List集合中
List<Book> bookList = new ArrayList<>();
FileInputStream inputFile = new FileInputStream("books.xls");
HSSFWorkbook workbook = new HSSFWorkbook(inputFile);
HSSFSheet sheet = workbook.getSheet("books");
for (int rowIndex = 1; rowIndex <= sheet.getLastRowNum(); rowIndex++) {
HSSFRow row = sheet.getRow(rowIndex);
String bookNo = getStringCellValue(row.getCell(0));
String bookName = getStringCellValue(row.getCell(1));
String author = getStringCellValue(row.getCell(2));
double price = getNumericCellValue(row.getCell(3));
String publisher = getStringCellValue(row.getCell(4));
int publishYear = (int) getNumericCellValue(row.getCell(5));
bookList.add(new Book(bookNo, bookName, author, price, publisher, publishYear));
}
inputFile.close();
// ...
}
private static String getStringCellValue(HSSFCell cell) {
if (cell == null) {
return "";
}
return cell.getStringCellValue().trim();
}
private static double getNumericCellValue(HSSFCell cell) {
if (cell == null) {
return 0.0;
}
return cell.getNumericCellValue();
}
}
```
在这个示例代码中,我们使用了Apache POI库中的HSSFWorkbook、HSSFSheet、HSSFRow和HSSFCell类型来读取Excel文件中的数据。如果您在实际应用中使用的是JXL或其他库,可以相应地进行修改。
最后,我还需要说明一点:在实际开发中,我们通常不会在书写代码的过程中包含机密信息,例如密码、密钥等,以避免这些信息泄露。因此,在编写代码时请注意保护您的机密信息,不要暴露给任何人或程序。
阅读全文