📄 booknamemodify.java
字号:
import java.util.*;//导入util包
import java.io.*;//导入IO包
class BookNameModify
{
//功能:在程序中首先要求用户输入修改前的书名,对书名进行检查,显示这本是否存在。如果不存在,显示没有这本书并退出程序。如果存在,要求用户输入修改后的书名,显示修改是否成功。从文件中读入图书信息要用到类FileReader。读入一个字符后需要立即存放到一个字符串中,需要用到StringBuffer类的append方法。
//改进:如果书本的信息用行分隔符分开,则可用BufferReader的readLine方法,程序要简单和优雅得多。
//如何实现模糊查询
public static void main(String args[])throws Exception
{
System.out.print("请输入修改前的书名:"); //显示“请输入修改前的书名:”
Scanner sc=new Scanner(System.in); //新建Scanner实例,从键盘输入
String bookName=sc.next(); //接受用户输入的书名,并赋值给一个字符串变量bookName
System.out.print("请输入修改后的书名:"); //显示“请输入修改后的书名:”
String bookName2=sc.next(); //接受用户输入的书名,并赋值给一个字符串变量bookName2
FileReader fr=new FileReader("books.txt"); //新建FileReader的实例fr,文件名books.txt,以便从文件中读入书本信息
StringBuffer books[]=new StringBuffer[10];
int aChar; //定义一个int变量aChar
int index=0; //定义一个int变量index,作为数组元素的索引,并赋值为0
char Char;
books[index]=new StringBuffer(); //新建一个StringBuffer实例,赋给books[index]
while((aChar=fr.read()) != -1) //while循环,从fr中读入一个字符,赋值给aChar,并判断是否为-1,是则结束循环
{
Char=(char)aChar; //将aChar转换为整型
if(Char==';')
{
index++;
books[index]=new StringBuffer();
} // 判断是否为aChar的值是否为“;”,如果是:index的值+1,新建一个StringBuffer实例,赋给 books[index],进入下次循环
else
books[index].append(Char); //将aChar添加到books[index]中
}
fr.close(); //关闭fr
FileWriter fw=new FileWriter("books.txt"); //新建FileWriter的实例fw,文件名books.txt,以便将书本信息写入到文件中
String BookNameT;
String bookDateT="";
boolean bol=false;
for(int i=0;i<books.length;i++) //for 循环,遍历books数组
{
if(books[i]==null)
break; //如果数组元素为空,结束循环
String tmpStr=new String(books[i]); //新建一个字符串实例tempStr,其值为数据元素
String[] book = tmpStr.split(",");
if(bookName.equals(book[0]))
{
fw.write(bookName2+",");
System.out.print("请输入借书日期:");
bookDateT=sc.next();
fw.write(bookDateT+";");
bol=true;
}
else
{
//System.out.println(books[i]);
fw.write(books[i].toString()+";");
}
} //检查书名是否为bookName,如果是写入修改后的书名bookName2和借书日期到文件中,不是则原样写入文件中
if(bol)
{
System.out.println("*****修改成功!*****");
System.out.println("修改后的书名:"+bookName2+"/"+"修改后的日期:"+bookDateT);
}
else
System.out.println("没有找到!"); //根据情况显示结果,没找到bookName则显示没有找到,修改成功则显示书名已修改
fw.close(); //关闭fw*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -