6. 如何打印出当前源文件的文件名以及源文件的当前行号?

解决方案 »

  1.   

    不知道什么叫当前源文件,你读一个文件不知道它名字吗?至于行号应该可以这样,你读的时候先设个line变量,初始为1,读一行后就加1
      

  2.   

    import java.io.*;public class InputOutput {
      public static void main(String[] args) {
        new ReadWrite().doRw();
      }
    }



    class ReadWrite {
      ReadWrite() {}

      void doRw() {
        try {
         File f = "D:/ja/111.txt";
          BufferedReader br = new BufferedReader(new FileReader(f));    

    //这里输出了文件的绝对路径,自然就包含了源文件名
    System.out.println(f);

          String s = null;
          int countLine = 0; //作为行数,每读一行就往上+1
    while ((s = br.readLine()) != null) {
    CountLine++;
       System.out.println(countLine + s);
    }

    br.close();
        } catch(IOException e) {
    e.printStackTrace();
        }
      }
    }
      

  3.   

    http://topic.csdn.net/u/20090906/18/5c3e47f0-f119-4f0e-8675-293e58f826e3.html?16092
    看这,你们俩难道去的同一家公司笔试?
      

  4.   

    不会是c/c++面试题吧?
    cout << __FILE__ ;
    cout<<__LINE__ ;
    __FILE__和__LINE__是系统预定义宏,这种宏并不是在某个文件中定义的,而是由编译器定义的。
      

  5.   

     File f = new File("D:/ja/111.txt");
      

  6.   


    Throwable t = new Throwable();
    StackTraceElement[] stacks = t.getStackTrace();
    for (StackTraceElement stack : stacks) {
    System.out.println("File Name:\t" + stack.getFileName());
    System.out.println("Line Number:\t" + stack.getLineNumber());
    }获取的是实例t的LineNumber以及FileName
      

  7.   

    import java.io.*;public class InputOutput {
      public static void main(String[] args) {
        new ReadWrite().doRw();
      }
    }
        
        
        
    class ReadWrite {
      ReadWrite() {}
            
      void doRw() {
        try {
            File f = "D:/ja/111.txt";
          BufferedReader br = new BufferedReader(new FileReader(f));    
            
                //这里输出了文件的绝对路径,自然就包含了源文件名
                System.out.println(f);
                
          String s = null;
          int countLine = 0;    //作为行数,每读一行就往上+1
                while ((s = br.readLine()) != null) {
                    CountLine++;
                  System.out.println(countLine + s);
                }
                
                br.close();
        } catch(IOException e) {
                e.printStackTrace();
        }
      }
    }