Java的面向?qū)ο缶幊?/a>">Java的面向?qū)ο缶幊?/a>
837
2022-05-28
在java中,利用輸出流我們可以將一些數(shù)據(jù)保存到磁盤文件中,利用輸入流可以讀取磁盤文件中的內(nèi)容。本節(jié)將綜合使用文件輸入/輸出流完成存儲圖書并將圖書信息再讀取出來的功能。
每到學(xué)校開學(xué)季都會新進(jìn)一批圖書教材,需要將這些圖書信息保存到文件,再將它們打印出來方便老師查看。下面編寫程序,使用文件輸入/輸出流完成圖書信息的存儲和讀取功能,具體的實現(xiàn)步驟如下。
1)創(chuàng)建 Book 類,在該類中包含 no、name 和 price 3 個屬性,分別表示圖書編號、圖書名稱和圖書單價。同時還包含兩個方法 write() 和 read(),分別用于將圖書信息寫入到磁盤文件中和從磁盤文件中讀取圖書信息并打印到控制臺。
此外,在 Product 類中包含有該類的 toString() 方法和帶有 3 個參數(shù)的構(gòu)造方法,具體的內(nèi)容如下:
public class Book { private int no; // 編號 private String name; // 名稱 private double price; // 單價 public Book(int no, String name, double price) { this.no = no; this.name = name; this.price = price; } public String toString() { return "圖書編號:" + this.no + ",圖書名稱:" + this.name + ",圖書單價:" + this.price + "\n"; } public static void write(List books) { FileWriter fw = null; try { fw = new FileWriter("D:\\c\\books.txt"); // 創(chuàng)建FileWriter對象 for (int i = 0; i < books.size(); i++) { fw.write(books.get(i).toString()); // 循環(huán)寫入 } } catch (Exception e) { System.out.println(e.getMessage()); } finally { try { fw.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void read() { FileReader fr = null; BufferedReader br = null; try { fr = new FileReader("D:\\c\\books.txt"); br = new BufferedReader(fr); // 創(chuàng)建BufferedReader對象 String str = ""; while ((str = br.readLine()) != null) { // 循環(huán)讀取每行數(shù)據(jù) System.out.println(str); // 輸出讀取的內(nèi)容 } } catch (Exception e) { System.out.println(e.getMessage()); } finally { try { br.close(); fr.close(); } catch (IOException e) { e.printStackTrace(); } } } }
如上述代碼,分別使用字符文件輸出流 FileWriter 和字符緩沖區(qū)輸入流 BufferedReader 完成對圖書信息的存儲和讀取功能。
2)編寫測試類 Test14,創(chuàng)建兩個 Book 對象,并將這兩個對象保存到 List 集合中,再將 List 集合對象傳遞給 Book 類中的 write() 方法,向 product.txt 文件中寫入圖書信息。最后調(diào)用 Product 類中的 read() 方法讀取該文件內(nèi)容,代碼如下:
public class Test { public static void main(String[] args) { Book book1 = new Book(001, "華為云AI全棧成長計劃", 188); Book book2 = new Book(002, "華為云web前端成長計劃", 166); List books = new ArrayList(); books.add(book1); books.add(book2); Book.write(books); System.out.println("********************圖書信息******************"); Book.read(); } }
3)運行程序,輸出的圖書信息,如下所示。打開 D:\c\books.txt 文件,該文件的內(nèi)容如圖 1 所示。
********************圖書信息******************
圖書編號:001,圖書名稱:華為云AI全棧成長計劃,圖書單價:188.0
圖書編號:002,圖書名稱:華為云web前端成長計劃,圖書單價:166.0
Java
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。