生活随笔
收集整理的這篇文章主要介紹了
1.11实例:保存图书信息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
利用輸出流我們可以將一些數據保存到磁盤文件中,利用輸入流可以讀取磁盤文件中的內容。本節將綜合使用文件輸入/輸出流完成存儲圖書并將圖書信息再讀取出來的功能。
每到學校開學季都會新進一批圖書教材,需要將這些圖書信息保存到文件,再將它們打印出來方便老師查看。下面編寫程序,使用文件輸入/輸出流完成圖書信息的存儲和讀取功能,具體的實現步驟如下。
1)創建 Book 類,在該類中包含 no、name 和 price 3 個屬性,分別表示圖書編號、圖書名稱和圖書單價。同時還包含兩個方法 write() 和 read(),分別用于將圖書信息寫入到磁盤文件中和從磁盤文件中讀取圖書信息并打印到控制臺。
此外,在 Product 類中包含有該類的 toString() 方法和帶有 3 個參數的構造方法,具體的內容如下:
import java
.io
.BufferedReader
;
import java
.io
.File
;
import java
.io
.FileNotFoundException
;
import java
.io
.FileReader
;
import java
.io
.FileWriter
;
import java
.io
.IOException
;
import java
.util
.List
;public class Book {private int id
;private String name
;private double price
;public Book(int id
, String name
, double price
) {super();this.id
= id
;this.name
= name
;this.price
= price
;}@Overridepublic String
toString() {return "book [編號=" + id
+ ", 名字=" + name
+ ", 單價=" + price
+ "]"+"\n";}public static void createmulu(){String path
="E:\\work";File f
=new File(path
);if(f
.exists()){f
.delete();}f
.mkdir();}public static void createwenjian(){File f
=new File("E:\\work\\book.txt");if(f
.exists()){f
.delete();}try {f
.createNewFile();} catch (IOException e
) {e
.printStackTrace();}}public static void write(List books
){FileWriter fw
=null
;try {fw
=new FileWriter("E:\\work\\book.txt");for(int i
=0;i
<books
.size();i
++){fw
.write(books
.get(i
).toString());}} catch (IOException e
) {e
.printStackTrace();}finally{try {fw
.close();} catch (IOException e
) {e
.printStackTrace();}}}public static void read(){FileReader fr
=null
;BufferedReader br
=null
;try {fr
=new FileReader("E:\\work\\book.txt");br
=new BufferedReader(fr
);String str
="";try {while((str
=br
.readLine())!=null
){System
.out
.println(str
);}} catch (IOException e
) {e
.printStackTrace();}} catch (FileNotFoundException e
) {e
.printStackTrace();}finally{try {br
.close();fr
.close();} catch (IOException e
) {e
.printStackTrace();}}}
}
如上述代碼,分別使用字符文件輸出流 FileWriter 和字符緩沖區輸入流 BufferedReader 完成對圖書信息的存儲和讀取功能。
2)編寫測試類 Test,創建兩個 Book 對象,并將這兩個對象保存到 List 集合中,再將 List 集合對象傳遞給 Book 類中的 write() 方法,向 F:\product.txt 文件中寫入圖書信息。最后調用 Product 類中的 read() 方法讀取該文件內容,代碼如下:
import java
.io
.File
;
import java
.io
.IOException
;
import java
.util
.ArrayList
;
import java
.util
.List
;public class Test {public static void main(String
[] args
) {Book
.createmulu();Book
.createwenjian();Book book1
=new Book(1001,"西游記",999);Book book2
=new Book(1002,"三國演義",888);List books
=new ArrayList();books
.add(book1
);books
.add(book2
);Book
.write(books
);System
.out
.println("圖書信息");Book
.read();}
}
運行程序,輸出的圖書信息,如下所示。打開 文件,該文件的內容如圖 1 所示。
圖書信息
book
[編號
=1001, 名字
=西游記
, 單價
=999.0]
book
[編號
=1002, 名字
=三國演義
, 單價
=888.0]
總結
以上是生活随笔為你收集整理的1.11实例:保存图书信息的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。