请問我在读取文件时出现内存溢出错误是怎么回事啊,谢谢
我把全部代码贴上来
package homework;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class HisFrome {
public static void main(String[] args) {
final Frame frame=new Frame("His frome");
//构造一个文本域
final TextArea ta=new TextArea();
frame.setSize(350,350);
frame.setLocation(250,300);
//将文本域加到frame中
frame.add(ta);
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
frame.setVisible(true);
/*
* 创建一个菜单栏
*/
MenuBar mb=new MenuBar();
/*
* 创建两个菜单
*/
Menu mu1=new Menu("File");
Menu mu2=new Menu("Edit");
/*
* 创建六个菜单项
*/
MenuItem mi1=new MenuItem("New");
MenuItem mi2=new MenuItem("Open");
/*
* 为open添加打开功能
*/
mi2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
FileDialog fd=new FileDialog(frame,"open file",FileDialog.LOAD);
fd.setVisible(true);
//返回打开文件所需的完整路径的字符串形式
String ftd=fd.getDirectory()+fd.getFile();
if(ftd!=null){
try{
//创建一个文件输入流
FileInputStream fis=new FileInputStream(ftd);
byte [] buf=new byte[1024*10];//创建一个字节数组来存储输入流中的内容
int len=fis.read(buf);//将输入流中的内容存入buf数组中并返回个数
ta.append(new String(buf,0,len));//将数组中的内容通过String类的构造器转换成字符并加入到文本域中
}catch(Exception E){E.printStackTrace();}
}
//fd.setVisible(true);//写这有错,要写在上面
}
});
MenuItem mi3=new MenuItem("Save");
MenuItem mi4=new MenuItem("Exit");
mi4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
MenuItem mi5=new MenuItem("Copy");
MenuItem mi6=new MenuItem("Paste");
/*
* 将菜单项分别加到两个菜单上
*/
mu1.add(mi1);
mu1.add(mi2);
mu1.add(mi3);
mu1.add(mi4);
mu2.add(mi5);
mu2.add(mi6);
/*
* 将两菜单加到菜单栏上
*/
mb.add(mu1);
mb.add(mu2);
//将菜单栏加到框架窗口上
frame.setMenuBar(mb);
}
}