请問我在读取文件时出现内存溢出错误是怎么回事啊,谢谢
我把全部代码贴上来
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);
    }
}