JAVA 实验报告二:异常处理及输入输出流技术实验
更新时间:2017/2/21 22:02:00 浏览量:584 手机版
实验报告
实验项目二 Java异常处理及输入输出流技术实验
文本编辑器
一、实验目的
1. 理解和掌握字节流的类以及它们的使用特点;
2. 理解和区分字节流和字符流;
3. 了解和运用字节流和字符流进行文件复制。
二、实验内容
设计一个简单的文本编辑器,可以实现多文件处理、实现文件的创建、浏览、编辑(允许文件复制和修改)、对已经修改的文件可以进行保存或以另存的文件名称保存。
三、实验原理
Java输入输出流技术、AWT/Swing编程技术、事件处理技术等技术原理。
四、实验环境
主CPU 586以上,内存1G以上,操作系统Windows XP,eclipse。
五、实验步骤
1、创建一个TextEditor 项目
图 1 TextEditor 项目
2.创建一个TextEditor类
图 2 TextEditor类
3.补充代码。并在TextEditor类里输入相对应的代码:
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.awt.*;
import java.io.*;
import javax.swing.text.Document;
public class TextEditor extends JFrame
{ JDesktopPane desktopPane;
//定义菜单组件
JMenuBar menuBar;
JMenu fileMenu,helpMenu;//定义文件菜单、帮助菜单
JMenuItem
newItem,openItem,saveItem,othersaveItem,closeItem,exitItem;
//定义文件菜单的:新建菜单项、打开菜单项、保存菜单项、另存菜单项、关闭菜单项、//退出菜单项
JMenuItem aboutItem;//定义帮助菜单的:关于菜单项
StringBuffer buffer=new StringBuffer();//定义一个字符串缓冲区; File currentFile;//当前处理的文件;
int status;//记录当前状态0:新建、1:打开、2:保存、3:另存;4:关闭; DisplayFrame currentFrame;//当前打开的窗口
public TextEditor()
{ super("文本编辑器");
Container container=getContentPane();
desktopPane=new JDesktopPane();
container.add(desktopPane);
createMenu();
setJMenuBar(menuBar);
}
public void createMenu()
{ //定义菜单条;
menuBar=new JMenuBar();
//定义文件菜单
fileMenu=new JMenu("文件");
//定义文件菜单的:新建菜单项、打开菜单项、保存菜单项、另存菜单项、关闭菜单 //退出菜单项
//定义新建菜单项
newItem=new JMenuItem("新建");
newItem.addActionListener(new NewFileListener());
//定义打开菜单项
openItem=new JMenuItem("打开");
openItem.addActionListener(new OpenFileListener());
saveItem=new JMenuItem("保存");
saveItem.addActionListener(new SaveFileListener());
othersaveItem=new JMenuItem("另存为");
othersaveItem.addActionListener(new OtherSaveFileListener()); closeItem=new JMenuItem("关闭");
closeItem.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent e)
{ if(e.getSource()==closeItem)
{ currentFrame.dispose();
}
}
});
exitItem=new JMenuItem("退出");
exitItem.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent e)
{ System.exit(0);
}
});
//添加菜单项到文件菜单中;
fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.addSeparator();
fileMenu.add(saveItem);
fileMenu.add(othersaveItem);
fileMenu.addSeparator();
fileMenu.add(closeItem);
fileMenu.add(exitItem);
//定义帮助菜单
helpMenu=new JMenu("帮助");
//定义帮助菜单的:关于菜单项
aboutItem=new JMenuItem("关于");
aboutItem.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent e)
{ if(e.getSource()==aboutItem)
{ JOptionPane.showMessageDialog(null,"TextEditor 1.1", "版本",JOptionPane.INFORMATION_MESSAGE);
}
}
});
//添加菜单项到帮助菜单中;
helpMenu.add(aboutItem);
//将文件菜单和帮助菜单加入到菜单条中;
menuBar.add(fileMenu);
menuBar.add(helpMenu);
}//end createMenu method;
public File chooseFile(int chooseMode)
{ //从选择文件对话框中选择文件,chooseMode为选择模式
//1:为文件打开对话框模式,2:为文件保存对话框模式;
JFileChooser filechooser=new JFileChooser();
filechooser.setFileSelectionMode(JFileChooser.FILES_ONLY);int result=0;
switch(chooseMode)
{ case 1:
result =filechooser.showOpenDialog(currentFrame); //代码1; //按照文件打开对话框模式选择文件
break;
case 2:
result=filechooser.showSaveDialog(currentFrame); //代码2; //按照文件保存对话框模式选择文件
break;
}if(result==filechooser.CANCEL_OPTION) return null;
File fileName=filechooser.getSelectedFile(); //代码3;//从对话框中选择文件,赋值给fileName;
return fileName;//返回选定的文件;
}
public void saveFile(File file,int saveMode) throws IOException{ //保存文件fileName,saveMode是保存文件模式:
//1:新建文件的保存;2:将修改的已有文件保存;
File fileName=null;
switch(saveMode)
{