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

public class Test {public static void main(String[] args) {Book book1 = new Book(1001, "百度搜索引擎", 159);Book book2 = new Book(1002, "百度搜索引擎", 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,图书名称:百度搜索引擎,图书单价:159.0
图书编号:1002,图书名称:百度搜索引擎,图书单价:259.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564814.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LDA(线性判别分析(普通法))详解 —— python

在这里和大家道个歉&#xff0c;因为我有一篇matlab的LDA和这篇内容大致相同&#xff0c;我就犯懒了&#xff0c;直接复制&#xff0c;没想到公式复制过来全变成了图片&#xff0c;然后造成了&#xff0c;排版有问题&#xff0c;非常难看&#xff0c;真的很抱歉&#xff01;&am…

wordpress 通过域名无法访问_VPS主机和宝塔面板搭建WordPress网站教程

这是一篇Wordpress建站教程&#xff0c;记录了我在VPS主机上&#xff0c;通过使用宝塔面板&#xff0c;搭建Wordpress网站或个人博客的详细步骤&#xff0c;外贸新人或小白在建立网站的时候可以作为参考。WordPress是全球最流行的建站程序&#xff0c;而且是免费的。用Wordpres…

猜数字小游戏

java代码 猜数字小游戏 程序分析 根据提示输入内容 获取输入的内容 使用for循环进行遍历使用if循坏进行数值的判断 输出结果 完整代码 import java.util.Scanner; import java.util.Random; public class mulTip{public static void main(String[] args){System.out.println…

LDA(线性判别分析(普通法))详解 —— matlab

目录 前言 正题 1.LDA的思想 2. 瑞利商&#xff08;Rayleigh quotient&#xff09;与广义瑞利商&#xff08;genralized Rayleigh quotient&#xff09; 3. 二类LDA原理 4.多类LDA原理 5.LDA分类 6.LDA算法流程 二类LDA matlab举例&#xff1a; 1.读取数据集 2.分离…

java 异步得到函数返回值_使用JavaScript进行异步编程

毫无疑问&#xff0c;虽然JavaScript的历史比较悠久&#xff0c;但这并不妨碍它成为当今最受欢迎的编程语言之一。对刚接触该语言的人来说&#xff0c;JavaScript的异步特性可能会有一些挑战。在本文中&#xff0c;我们将了解和使用Promise和async/await来编写小型异步程序。通…

Java Collection接口详解

Collection 接口是 List、Set 和 Queue 接口的父接口&#xff0c;通常情况下不被直接使用。Collection 接口定义了一些通用的方法&#xff0c;通过这些方法可以实现对集合的基本操作。定义的方法既可用于操作 Set 集合&#xff0c;也可用于操作 List 和 Queue 集合。 Collecti…

ARMA模型的性质之MA模型

目录 一、MA模型的定义 二、MA模型的统计性质 1.常数均值 2.常数方差 3.自协方差函数q阶结尾 4.自相关系数q阶截尾 举例&#xff1a; 三、MA模型的可逆 1.可逆的定义和条件 2.MA与AR模型的对比 3.逆函数的递推公式 举例&#xff1a; 四、MA模型的偏自相关系数拖尾…

python难度如何_【经验分享】想转行学python,过来人提醒大家几点

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 提醒大家几点 一&#xff1a;盲目的去学 当初我在对于python这个行业什么都不了解的情况下&#xff0c;比如&#xff1a;不知道未来发展趋势&#xff0c;不知道学习python应该注意哪些初始问题&#xff0c;不知道具体的学习规划学…

ArrayList和LinkedList类的用法及区别

List 是一个有序、可重复的集合&#xff0c;集合中每个元素都有其对应的顺序索引。List 集合允许使用重复元素&#xff0c;可以通过索引来访问指定位置的集合元素。List 集合默认按元素的添加顺序设置元素的索引&#xff0c;第一个添加到 List 集合中的元素的索引为 0&#xff…

ARMA模型的性质之ARMA模型

目录 一、ARMA模型的定义 二、平稳条件与可逆条件 三、传递形式与逆转形式 四、ARMA(p,q)模型的统计性质 1.均值 2.自协方差函数 3.自相关系数 4.ARMA(p,q)模型自相关系数拖尾&#xff0c;偏自相关系数拖尾 小结 一、ARMA模型的定义 具有如下结构的模型称为自回归移动…

R之Excel文件读取与程序包的安装调用

目录 方法一 方法二 1.用命令安装 2.从下拉菜单安装 三、加载所需安装包 方法一 方法二 四、使用新程序包读取数据 方法一 另存为 .csv 文件 这是wps的另存为 然后选择位置&#xff0c;重命名或更改格式为 .csv 这是excel 的另存为 文件 —— 另存为 —— 选择位置 …

Java遍历Map集合的四种方式

Map 有两组值&#xff0c;因此遍历时可以只遍历值的集合&#xff0c;也可以只遍历键的集合&#xff0c;也可以同时遍历。Map 以及实现 Map 的接口类&#xff08;如 HashMap、TreeMap、LinkedHashMap、Hashtable 等&#xff09;都可以用以下几种方式遍历。 1 . 在 for 循环中使…

diag开关什么意思_双控开关接线图_一灯双控开关接线图_单联双控开关接线图_双控开关接线图实物图...

电工学习网&#xff1a;www.diangon.com关注电工学习网官方微信公众号“电工电气学习”&#xff0c;收获更多经验知识。双控开关接线图_一灯双控开关接线图_单联双控开关接线图_双控开关接线图实物图现在市场上面所出售的开关种类非常的多&#xff0c;双控开关正好能够满足人们…

Office 安装MathType7.4 未找到MathPage.wll等问题

目录 问题描述&#xff1a; 解决方法&#xff1a; 问题描述&#xff1a; MathType v7.4 简体中文版是一款功能很强大的数学公式编辑器,在很多地方都会用的&#xff0c;而wps就不能适应各种场合。 但是该软件总会因为不明原因,有时会出现找不到MathType.dll或者MathPage.wll文…

python导入excel加入折线图_利用python向excel文件写数据并绘制折线图

依赖 python 2.7.15 xlswriter&#xff08;可以使用pip insall xlswriter&#xff09; 具体实现 #!/usr/bin/env python # -*- coding:utf-8 -*- import xlsxwriter # Create a workbook and add a worksheet. workbook xlsxwriter.Workbook(Expenses01.xlsx) worksheet work…

Collections类操作集合详解

Collections 类是 Java 提供的一个操作 Set、List 和 Map 等集合的工具类。Collections 类提供了许多操作集合的静态方法&#xff0c;借助这些静态方法可以实现集合元素的排序、查找替换和复制等操作。 排序&#xff08;正向和逆向&#xff09; Collections 提供了如下方法用…

平稳序列的预测和拟合之单位根检验

目录 1.建模步骤 2.单位根检验 2.1 DF检验&#xff08;以AR(1)模型为例&#xff09; DF检验的等价表达 DF检验的三种类型 R语言单位根检验&#xff1a; 2.2 ADF检验 ADF检验的三种类型 小结 1.建模步骤 2.单位根检验 对平稳序列建模&#xff0c;首先要确定序列是平稳的…

如何自己去写一个鼠标驱动_为什么要用哈密顿采样器(Hamiltonian Monte Carlo),以及如何自己写一个...

背景介绍&#xff1a;&#xff08;了解采样的可以跳过&#xff09;1&#xff09;为什么需要采样&#xff1a;简单的分布&#xff0c;比如高斯、exponential、gamma等等的样本都可以直接用numpy.random生成&#xff0c;但复杂的分布需要采样器生成。在贝叶斯、概率编程里面&…

Iterator(迭代器)遍历Collection集合元素

Iterator&#xff08;迭代器&#xff09;是一个接口&#xff0c;它的作用就是遍历容器的所有元素&#xff0c;也是 Java 集合框架的成员&#xff0c;但它与 Collection 和 Map 系列的集合不一样&#xff0c;Collection 和 Map 系列集合主要用于盛装其他对象&#xff0c;而 Iter…

java inputstream read_20191209-java部分流处理

流:流一般分为输入流(InputStream)和输出流(OutputStream)两类.但这种划分并不是绝对的.在Java开发环境中,主要是由包http://java.io中提供的一系列的类和接口来实现输入和输出处理.标准输入和输出处理则是由包java.lang中提供的类来处理的,但这些类又都是从包http://java.io中…