利用输出流我们可以将一些数据保存到磁盘文件中,利用输入流可以读取磁盘文件中的内容。本节将综合使用文件输入/输出流完成存储图书并将图书信息再读取出来的功能。

每到学校开学季都会新进一批图书教材,需要将这些图书信息保存到文件,再将它们打印出来方便老师查看。下面编写程序,使用文件输入/输出流完成图书信息的存储和读取功能,具体的实现步骤如下。

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) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void write(List books){FileWriter fw=null;try {fw=new FileWriter("E:\\work\\book.txt");//创建FileWriter对象for(int i=0;i<books.size();i++){fw.write(books.get(i).toString());//循环写入}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {fw.close();} catch (IOException e) {// TODO Auto-generated catch blocke.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) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {br.close();fr.close();} catch (IOException e) {// TODO Auto-generated catch blocke.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实例:保存图书信息相关推荐

  1. java将图书信息写入原有文件里_Java保存图书信息

    在本章<Java字节流的使用>和<Java字符流的使用>中已经详细介绍了字节.字符输入/输出流的应用,利用输出流我们可以将一些数据保存到磁盘文件中,利用输入流可以读取磁盘文件中 ...

  2. java保存图书每日的交易记录

    ①创建一个图书实体类 package in;public class Books {int id;String name; //图书名称double price; //单价int number; // ...

  3. C语言程序设计--图书信息管理系统

    题    目: 图书信息管理系统  图书信息管理系统 本题目设计目的是训练学生的基本编程能力,了解图书管理信息系统的开发流程,熟悉C语言的文件的基本操作.本程序中涉及结构体.文件等方面的知识.通过本程 ...

  4. 已知数据库中存在表tb_book2,通过在图书信息界面填写书本的基本信息,然后提交后写入数据库中的表格中。需要对提交的信息进行修改,信息填入不能为空,为空则则有提示。

    jsp结合SQLSERVER向数据库中的表添加图书信息. 已知数据库中存在表tb_book2,通过在图书信息界面填写书本的基本信息,然后提交后写入数据库中的表格中.需要对提交的信息进行修改,信息填入不 ...

  5. C语言课设图书信息管理系统(大作业)

    一.设计功能(文章仅供参考) 图书信息包括:登录号.书名.作者名.分类号.出版单位.出版时间.价格等.试设计一图书信息管理系统,使之能提供以下功能: (1)系统以菜单方式工作 (2)图书信息录入功能( ...

  6. 在当当买了python怎么下载源代码-Python爬取当当、京东、亚马逊图书信息代码实例...

    注:1.本程序采用MSSQLserver数据库存储,请运行程序前手动修改程序开头处的数据库链接信息 2.需要bs4.requests.pymssql库支持 3.支持多线程 from bs4 impor ...

  7. 前端:JS/20/数组(数组的概念,数组元素,数组索引,数组元素的访问,数组的长度,数组的创建方法,数组的操作,实例:使用数组保存个人信息,实例:求数组所有值的平均值,数组对象的length属性)

    数组 1,数组的概念 一组值(或对象)的集合,称为"数组": var arr =[10,20,30,50]; var arr =["张三","男&qu ...

  8. python爬虫如何爬亚马逊_Python爬取当当、京东、亚马逊图书信息代码实例

    注:1.本程序采用MSSQLserver数据库存储,请运行程序前手动修改程序开头处的数据库链接信息 2.需要bs4.requests.pymssql库支持 3.支持多线程 from bs4 impor ...

  9. python爬取京东书籍_Python爬取当当、京东、亚马逊图书信息代码实例

    注:1.本程序采用MSSQLserver数据库存储,请运行程序前手动修改程序开头处的数据库链接信息 2.需要bs4.requests.pymssql库支持 3.支持多线程 from bs4 impor ...

最新文章

  1. Quartz执行周期配置
  2. Dockerd docker-containerd docker-containerd-shim runC
  3. matlab引擎函数,Matlab引擎库函数
  4. 如何使用ASP.NET Core Web API实现短链接服务
  5. Netty设计模式应用
  6. linux进入文件全文搜索命令,Linux 文件查找命令详解
  7. ECMAScript中基本类型和引用类型的值在复制变量值时的区别
  8. Python如何输出格式清晰的dict
  9. 【转】haar特征简单分析
  10. 注册表右键取得管理员权限
  11. csgo删除服务器地图在哪个文件夹,CSGO de_cache地图
  12. 原神角色展示(HTML+CSS)
  13. 按键精灵下载文华财经数据 一键下载
  14. SDIO wifi Marvell8801/Marvell88w8801 介绍(二) ---- SDIO协议介绍
  15. vue项目中Echarts两个图表之间连接两条线
  16. AngularJS报错:[$injector:unpr] Unknown provider: $templateRequestProvider
  17. 微信公众号客服系统怎么生成能追踪效果的二维码?
  18. CAS单点登录学习笔记二之部署CAS Server
  19. 移动端浏览器预览word、excel、ppt
  20. matlab信号系统实验报告,信号与系统 MATLAB实验报告

热门文章

  1. BlockChain:互联网与区块链之间的那些事(P2P下载、P-CDN、分布式计算、社交媒体、P2P借贷、众筹、区块链、自组织)
  2. Py之GUI之PyQt:PyQt5的简介、入门、安装(QtCreator和QtDesigner)图文教程之详细攻略
  3. Pandas matplotlib 无法显示中文
  4. 这应该是脑结构、脑工作原理最详细的图解了
  5. 一分钟快速入门openstack
  6. 物联网网络编程和web编程
  7. poj 3101 Astronomy (java 分数的最小公倍数 gcd)
  8. ASP.NET MVC 3 Razor基础语法
  9. ST17H26的PWM模块
  10. 第七章-NoSQL数据库