图书馆用文本文件booklist.txt记录图书的书目,其中包括book1,book2,…,book10.现在又要采购一批新书,编写程序将新的书目添加到目录中。
package p2;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Vector;
public class booklist extends Frame implements ActionListener
{
Vector savestring=new Vector();
Frame f;
TextField addbook;
TextArea listbook;
Label l1,l2;
Button bopen,bexit,bsave,badd;//定义四个按钮
public static void main(String args[])
{
booklist b1=new booklist();
b1.init();
}
public void init()
{
f=new Frame("booklist");
f.setLayout(new FlowLayout());//布局管理器
//两个标签
l1=new Label("pls add your book here",Label.RIGHT);
l2=new Label("Book list");
//书名输入域
listbook=new TextArea("", 7, 40, TextArea.SCROLLBARS_BOTH);
bopen=new Button("open");
bsave=new Button("save");
bexit=new Button("exit");
badd=new Button("add");
//给四个按钮添加注册监听器
bexit.addActionListener(this);
bopen.addActionListener(this);
bsave.addActionListener(this);
badd.addActionListener(this);
//将基本元素放到框架中
f.add(l1);
f.add(addbook);
f.add(l2);
f.add(listbook);
f.add(bopen);
f.add(bsave);
f.add(bexit);
f.add(badd);
//初始时,添加按钮及保存按钮都设置为不可按状态
badd.setEnabled(false);
bsave.setEnabled(false);
f.setSize(300, 320);
f.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==bexit)//判定是哪个按钮
System.exit(0);//退出
if(e.getSource()==bopen)//打开文件按钮
{
try
{
FileInputStream booklist=new FileInputStream("E:\\java\\javabook\\booklist.txt");//指定目录下的文件
BufferedReader in=new BufferedReader(new InputStreamReader(booklist));
for(int i=0;;)
{
String book=in.readLine();
if(book==null)
break;
listbook.append(book+"\n");//在内容框内显示
savestring.addElement(book);
}
badd.setEnabled(true);//有内容后添加按钮可以用
bsave.setEnabled(true);//有内容后保存按钮可以用
in.close();
booklist.close();
} catch (FileNotFoundException ee) {
// TODO: handle exception
ee.printStackTrace();
}catch (IOException ee) {
// TODO: handle exception
ee.printStackTrace();
}
}
if(e.getSource()==badd)//添加按钮的处理
{
String txt=addbook.getText();
if(txt==null)
return;
else
{
listbook.append(txt+"\n");
savestring.addElement(txt);
}
}
if(e.getSource()==bsave)//保存按钮的处理
{
try
{
FileOutputStream booklist=new FileOutputStream("E:\\java\\javabook\\booklist.txt");
BufferedWriter out=new BufferedWriter(new OutputStreamWriter(booklist));
for(int i=0;i<savestring.size();i++)
{
String book=savestring.elementAt(i).toString();
out.write(book+"\n");
}
out.close();
booklist.close();
} catch (FileNotFoundException ee) {
// TODO: handle exception
ee.printStackTrace();
}catch (IOException ee) {
// TODO: handle exception
ee.printStackTrace();
}
}
}
}