IO2

本文介绍了一个使用Java编写的简易记事本程序。该程序具备基本的文件操作功能,如打开、保存及另存为等,并通过菜单和对话框提供良好的用户体验。文中详细展示了如何利用Java IO流来实现文件的读取与写入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流的分类:

• 按数据流动方向

– 输入流:只能从中读取字节数据,而不能向其写出数据

– 输出流:只能向其写入字节数据,而不能从中读取数据

• 按照流所处理的数据类型

– 字节流:用于处理字节数据。

– 字符流:用于处理Unicode字符数据

• 按照流所处理的源

– 节点流:从/向一个特定的IO设备读/写数据的流

– 处理流:对已存在的流进行连接和封装的流

基本流类的继承关系

今天学得还是输入输出流,我们的作业是用今天的知识写出记事本中保存饿功能。

用JAVA编程的记事本:

import java.io.*;

import java.awt.*;

import java.awt.event.*;

public class TestMenu extends Frame implements ActionListener{

FileDialog fd_load;

FileDialog fd_save;

TextArea ta;

String file= "";

MenuBar mb;

Menu mnFile;

MenuItem miOpen,miSave,miSaveAs;

public static void main(String args[]){

TestMenu tfd=new TestMenu();

tfd.setSize(400,200);

tfd.setLocation(450,200);

tfd.setVisible(true);

}

public TestMenu(){

super("记事本");

mb=new MenuBar();

mnFile=new Menu("文件");

miOpen=new MenuItem("打开");

miSave=new MenuItem("保存");

miSaveAs=new MenuItem("另存为");

mnFile.add(miOpen);

mnFile.add(miSave);

mnFile.add(miSaveAs);

mb.add(mnFile);

setMenuBar(mb);

ta=new TextArea();

add(ta,BorderLayout.CENTER);

miOpen.addActionListener(this);

miSave.addActionListener(this);

miSaveAs.addActionListener(this);

addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

});

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

fd_save=new FileDialog(this,"保存文件",FileDialog.LOAD);

}

public void actionPerformed(ActionEvent e){

String s=e.getActionCommand();

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

fd_load.setVisible(true);

String d=fd_load.getDirectory();

String f=fd_load.getFile();

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

file=d+f;

loadFile();

}

}else if(s.equals("保存")){

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

saveFileAs();

}else{

saveFile();

}

}else if(s.equals("另存为")){

saveFileAs();

}

}

public void loadFile(){

ta.setText("");

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

try{

BufferedReader br=new BufferedReader(new FileReader(file));

String s=br.readLine();

while(s!=null){

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

s=br.readLine();

}

br.close();

}catch(IOException e){

e.printStackTrace();

}

}

public void saveFileAs(){

fd_save.setVisible(true);

String d=fd_save.getDirectory();

String f=fd_save.getFile();

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

file=d+f;

saveFile();

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

}

}

private void saveFile() {

String content=ta.getText();

try{

PrintWriter pw=new PrintWriter(new FileWriter(file));

pw.println(content);

pw.close();

}catch(IOException e){

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值