choice定义:
                  choice=new Choice();
choice.add("training1.txt");
choice.add("training2.txt");
choice.add("training3.txt");
然后有:
                  choice.addItemListener(this);
然后下面:
                  public void itemStateChanged(ItemEvent e){
String fileName=choice.getSelectedItem();
File file=new File(fileName);
trainedChinese=chinese.getChinesecharacters(file);
k=0;
mycard.show(pCenter, "hanzi");
}
问题是:我在面板上选择某个trainingx.txt后,事件运行时,File file=new File(fileName);不应该是在程序的同一目录下新建一个文件么,怎么没有呢

解决方案 »

  1.   

    File类:文件和目录路径名的抽象表示形式。 用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录。此类呈现分层路径名的一个抽象的、与系统无关的视图。
    ————————上面中文API上的原话————————————————————File file=new File(fileName)这个不会创建文件,只是以fileName为文件名或目录名映射一个逻辑文件。这个文件和系统中的实际文件没有关系。但你可以用file.exist()来判断实际的系统中是不是存在这样的一个文件。
    你可以在系统中(硬盘上)创建和file一致的文件,还可以判断与file(这个是抽象的)对应的实际文件(这个是实际存在的)是文件还是目录等操作。详细的方法查一下API。
      

  2.   


    /*程序中产生10个随机整数(用(int)100*Math.random()生成),
     将它们存入一个数据文件,再从该文件中读取数据,并在屏幕上显示出来。
     
    使用File类判断当前目录中是否已经存在文件data.dat,
    如存在,则中断程序的运行,否则继续;
    使用DataOutputStream及相关IO流类将随机产生的6个整数存入数据文件data.dat;
    使用DataInputStream及相关IO流类从数据文件data.dat读取数据,并在屏幕上显示出来。*/
    import java.io.*;
    public class lab11_2
    {
    public static void main(String args[])
    {
    try
    {
    File file=new File("data.dat");//****************
    if(!file.exists())
    {
    FileOutputStream data=new FileOutputStream(file);
                    DataOutputStream out=new DataOutputStream(data);
                    for(int i=0;i<6;i++)
                    {
                        out.writeInt((int)(100*Math.random()));   
                    }
                    file.flush();
                    out.close();
                    data.close();
                   FileInputStream fis = new FileInputStream(file);
                   DataInputStream in= new DataInputStream(fis);
      for(int i=0;i<6;i++)
       {
     System.out.println(in.readInt()); 
       }
     in.close();
         fis.close();  
       }
       else 
                     System.out.println("data.dat already exist");
    }
    catch(IOException e)
    {
    System.out.println("data.dat already exist");
    }
    }
    }为什么这个就能建一个文件呢
      

  3.   

    data.dat不是File file=new File("data.dat");这一句建的.
    是FileOutputStream data=new FileOutputStream(file);这一句建的,后面的 out.writeInt()给文件加了内容.