楼上的两位说错了
应该是该.class文件所在的目录
当前工作目录和工程当前目录在很多ide中并不是与.class文件所在目录一致的

解决方案 »

  1.   

    java 运行时默认的工作目录是当前目录
    大多数 IDE 将工作目录设置为了工程目录所以看起来默认的工作目录是工程目录
    class 文件所在的目录叫 classpath
    某些时候 classpath 和当前目录是重合的(比如执行 HelloWorld 的时候)package pk;import java.io.*;/**
     * Created by IntelliJ IDEA.
     * User: Administrator
     * Date: 2004-8-11
     * Time: 14:58:40
     * To change this template use File | Settings | File Templates.
     */
    public class StreamMark {
        public static void main(String[] args) throws IOException {
            FileInputStream fis;
            InputStreamReader isr;
            BufferedReader br;
            int fileSize;
            int data;        fis = new FileInputStream("StreamMark.java");
            fileSize = fis.available();
            isr = new InputStreamReader(fis);
            br = new BufferedReader(isr, fileSize);        System.out.println(fis.Supported());
            System.out.println(br.Supported());
            System.out.println(isr.Supported());        for (int i = 0; i < 3; i++) {
                br.(fileSize + 1); // Bypass EOF
                while ((data = br.read()) != -1) {
                    System.out.print((char)data);
                }
                br.reset();
                System.out.println("\ni = " + i);
            }
        }
    }将上面的代码保存成文件然后编译
    设 c:\ 为当前目录
    目录 pk 的绝对路径为 c:\pk
    实验1:
    将 .java 文件放在 c:\ 下, .class 文件放在 c:\pk 下
    C:\>java  pk.StreamMark
    实验2:
    将 .java 文件放在 c:\pk 下, .class 文件放在 c:\pk 下
    C:\>java  pk.StreamMark
      

  2.   

    可以通过
    String prefix = getServletContext().getRealPath("/");
    获得当然tomcat运行的上下文路径的。