IO封装和相关实例

这是新学期的第二天,我相信每一天的努力都会有收获的,天无绝人之路。

今天学习的内容依旧是数据流部分,分装 FileInputStream,BufferedInputStream,DataInputStream 三种类型的嵌套缓冲等等。老师留的作业是一个记事本的输出输入,虽然要求实现的功能并不多,但是我尽自己能力都实现了,发现了很多学习不足之处,包括 GUI 的监听部分,以前停留在概念层面的东西在今天的实践当中清晰起来,包括windowsClosing() 的写法也熟悉了很多。这个今天的作业代码: import java.awt.FileDialog;

publicclasswenben extends Frame implements ActionListener {

//添加

TextArea ta;

MenuBar mb;

Stringfile="";

FileDialogfd_load;

FileDialogfd_save;

MenuFile,Edit,Format,Help;

MenuItemmiNew,miOpen,miSave,miExit,miSaveAs,miFont;

public wenben(){

super(" 记事本 ");

ta =newTextArea("",200,300);

mb = newMenuBar();

File = newMenu(" 文件 ");

Edit = newMenu(" 编辑 ");

Format = newMenu(" 格式 ");

Help = newMenu(" 帮助 ");

miNew = newMenuItem(" 新建 ");

miOpen = newMenuItem(" 打开 ");

miSave = newMenuItem(" 保存 ");

miExit = newMenuItem(" 退出 ");

miSaveAs = newMenuItem(" 另存为 ");

miFont = newMenuItem(" 字体 ");

File.add(miNew);

File.add(miOpen);

File.add(miSave);

File.add(miSaveAs);

File.add(miExit);

Edit.add(miFont);

mb.add(File);

mb.add(Edit);

mb.add(Format);

mb.add(Help);

setMenuBar(mb);

this.add(ta);

miOpen.addActionListener(this);

miSave.addActionListener(this);

miSaveAs.addActionListener(this);

miExit.addActionListener(this);

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvent e){

System.exit(0);

}

});

fd_load =newFileDialog(this," 打开文件",FileDialog.LOAD);

fd_save = newFileDialog(this," 保存文件 ",FileDialog.SAVE);

}

public voidactionPerformed(ActionEvente){

String s =e.getActionCommand();

if(s.equals("打开 ")){

fd_load.setVisible(true);

String d =fd_load.getDirectory();

String f =fd_save.getFile();

if((d!=null)&&(f!=null)){

file=d+f;

loadFile();

}

}elseif(s.equals(" 保存 ")){

if((file==null)||file.equals("")){

saveFileAs();

}else{

saveFile();

}

}elseif(s.equals(" 另存为 ")){

saveFileAs();

}

elseif(s.equals(" 退出 ")){

System.exit(0);

}

}

public voidloadFile(){

ta.setText("");

this.setTitle("记事本 "+file);

try{

BufferedReaderbr = newBufferedReader(new FileReader(file));

String s =br.readLine();

while(s!=null){

ta.append(s+"\n");

s=br.readLine();

}

br.close();

}catch(IOExceptione){

e.printStackTrace();

}

}

public voidsaveFile(){

String content =ta.getText();

try{

PrintWriter pw =newPrintWriter(new FileWriter(file+".TXT"));

pw.println(content);

pw.close();

}catch(IOExceptionie){

ie.printStackTrace();

}

}

public voidsaveFileAs(){

fd_save.setVisible(true);

String f =fd_save.getDirectory();

String d =fd_save.getFile();

if((f!=null)&&(d!=null)){

file=f+d;

saveFile();

setTitle(" 记事本 --"+file);

}

}

public staticvoid main(String[] args){

wenben tm = newwenben();

tm.setSize(300,200);

tm.setLocation(300,200);

tm.setVisible(true);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值