在本章《Java字节流的使用》和《Java字符流的使用》中已经详细介绍了字节、字符输入/输出流的应用,利用输出流我们可以将一些数据保存到磁盘文件中,利用输入流可以读取磁盘文件中的内容。本节将综合使用文件输入/输出流完成存储图书并将图书信息再读取出来的功能。

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

1)创建 Book 类,在该类中包含 no、name 和 price 3 个属性,分别表示图书编号、图书名称和图书单价。同时还包含两个方法 write() 和 read(),分别用于将图书信息写入到磁盘文件中和从磁盘文件中读取图书信息并打印到控制台。

此外,在 Product 类中包含有该类的 toString() 方法和带有 3 个参数的构造方法,具体的内容如下:

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("E:\\myJava\\books.txt"); // 创建FileWriter对象

for (int i = 0; i < books.size(); i++) {

fw.write(books.get(i).toString()); // 循环写入

}

} 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("E:\\myJava\\books.txt");

br = new BufferedReader(fr); // 创建BufferedReader对象

String str = "";

while ((str = br.readLine()) != null) { // 循环读取每行数据

System.out.println(str); // 输出读取的内容

}

} catch (Exception e) {

System.out.println(e.getMessage());

} finally {

try {

br.close();

fr.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

如上述代码,分别使用字符文件输出流 FileWriter 和字符缓冲区输入流 BufferedReader 完成对图书信息的存储和读取功能。

2)编写测试类 Test14,创建两个 Book 对象,并将这两个对象保存到 List 集合中,再将 List 集合对象传递给 Book 类中的 write() 方法,向 F:\product.txt 文件中写入图书信息。最后调用 Product 类中的 read() 方法读取该文件内容,代码如下:

public class Test14 {

public static void main(String[] args) {

Book book1 = new Book(1001, "C语言中文网Java教程", 159);

Book book2 = new Book(1002, "C语言中文网C++教程", 259);

List books = new ArrayList();

books.add(book1);

books.add(book2);

Book.write(books);

System.out.println("********************图书信息******************");

Book.read();

}

}

3)运行程序,输出的图书信息,如下所示。打开 E:\myJava\books.txt 文件,该文件的内容如图 1 所示。

********************图书信息******************

图书编号:1001,图书名称:C语言中文网Java教程,图书单价:159.0

图书编号:1002,图书名称:C语言中文网C++教程,图书单价:259.0

图1 文件保存的图书信息

java将图书信息写入原有文件里_Java保存图书信息相关推荐

  1. linux脚本输出到文件,在linux下,如何将shell里输出的信息写入到文件里呢?

    在linux下,如何将shell里输出的信息写入到文件里呢? 在linux下,如何将shell里输出的信息写入到文件里呢? 通过下面的两个管道符可以实现些功能. >               ...

  2. linux在文件里写入,在linux下,如何将shell里输出的信息写入到文件里呢?

    在linux下,如何将shell里输出的信息写入到文件里呢? 通过下面的两个管道符可以实现些功能. >               将信息写入文件 >>             在现 ...

  3. java将多个文件写入到一个文件流中再有规律的取出_编写java程序,往一个txt文件里写入学生的基本信息,然后再读出这些信息并打印出来,最后把该文件拷贝到指...

    满意答案 azonyb 2014.02.18 采纳率:59%    等级:12 已帮助:13223人 import java.io.BufferedInputStream; import java.i ...

  4. python读取日志错误信息_使用Python将Exception异常错误堆栈信息写入日志文件

    假设需要把发生异常错误的信息写入到log.txt日志文件中去: import traceback import logging logging.basicConfig(filename='log.tx ...

  5. python把异常写入文件_使用Python将Exception异常错误堆栈信息写入日志文件代码

    本篇文章小编给大家分享一下使用Python将Exception异常错误堆栈信息写入日志文件代码及补充知识,对大家的学习有一定的帮助,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看 ...

  6. java文件保存异常_Java 实现把异常信息写入到文件中

    示例代码如下: import java.io.File; import java.io.FileNotFoundException; import java.io.PrintStream; publi ...

  7. java将输出结果写入csv文件_如何在Java中将数据写入.csv文件?

    名为OpenCSV的库提供API来从.CSV文件读取数据或将数据写入.CSV文件.此处说明了如何使用Java程序写入.csv文件的内容. Maven依赖 com.opencsv opencsv 4.4 ...

  8. java.util.logging.Logger 写到文件里

    首先定义和初始化它: Logger logger = Logger.getLogger("log"); 假如想把logger的信息输入到指定的文件里的话,就要写一个FileHand ...

  9. 软件崩溃时 将堆栈信息写入dump文件, 并使用VS2010定位程序崩溃位置

    Windows下有三种生成dump文件的方式: 1.通过任务管理器和注册表:2.WinDbg抓取:3.程序中加入存储Dump的代码 具体生成方法参看:Windows下dump文件生成与分析 本文详细介 ...

最新文章

  1. java弧线_数据可视化API之弧线图实现
  2. mysql千万级大数据SQL查询优化
  3. AnjularJS笔记5--ng-repeat跟据ID判断重复性
  4. ThinkPHP3验证码、文件上传、缩略图、分页(自定义工具类、session和cookie)
  5. ASP.NET Web实时消息后台服务器推送技术---GoEasy
  6. ssl初一组周六模拟赛【2018.3.17】
  7. linux系统高级管理工具包,linux两大系统的包管理工具
  8. 11、Libgdx的音频
  9. model 创建帖子的方法
  10. IEEE发布AI三原则:机器人革命中需要保护人类福祉 | 138页报告
  11. PHPExcel如何把该列的值设置为文本无科学计数?
  12. Android eclipse中程序调试
  13. winform实现委托
  14. Excel导入导出SQL server数据库
  15. cad文件如何转pdf图纸进行标准的打印
  16. 计算机音乐谱老纸老虎,二年级下册音乐教案第六单元《两只老虎》人音版(简谱)...
  17. 程序员的自我进化:共享经济新模式——共享员工
  18. 腾讯云认证考试考点列表有哪些?
  19. 查询净值连续增长天数
  20. 【笔记】不一样的 双11 技术,阿里巴巴经济体云原生实践(上)

热门文章

  1. PAT 1059 Prime Factors[难]
  2. Go语言【第十四篇】:Go语言基础总结
  3. 网络虚拟化基础协议之Geneve
  4. 如何查看一个文件中间的20至30行内容?
  5. 深入理解Web Service
  6. PC机中各类存储器的逻辑连接情况
  7. 命运由我们自己抉择!
  8. typeof需要注意的内容
  9. 0. Python3源码—编译
  10. Scrum联盟的新任全球营销副总裁访谈