本帖最后由 roypayne0305 于 2013-10-06 08:56:16 编辑

解决方案 »

  1.   

     File f2 = new File("bb.txt");
    这个在eclipse里是在项目的根目录下,在cmd运行时当前路径下。
      

  2.   


    txt文件不是和java文件在同一个目录吗?为什么这样就不行?谁解释下?难道是编译后的class文件在同一个目录吗?谁知道?
      

  3.   

    这种相对路径是相对 System.getProperty("user.dir")而言的,你输出一下user.dir的内容就知道了。
      

  4.   

    为毛是这样呢?谁懂?能分析的更底层一点吗?
    因为在eclipse中是以项目为单位滴。TestIo这个项目里面有bb.txt文件吗?
      

  5.   

    应该放在项目下,而不是和SRC同级的。
      

  6.   

    如果你不提供具体磁盘路径(例如:d:\\)这样行式,那么程序在执行过程中会默认把当前工程所在目录(也就是比src更上一级目录)作为文件目录!当你执行代码创建文件程序无误后,右键点击工程刷新工程就能找到文件了!
      

  7.   

    应该放在TESTIO下面, System.getProperty("user.dir")
      

  8.   

    为毛是这样呢?谁懂?能分析的更底层一点吗?
    首先java的相对路径是以System.getProperty("user.dir")为参照的,就是你的类编译后bin(相对于IDE)的路径,但是你的bb.txt在bin目录下的test/io/TestTxt下,当然找不到了,你首先要明白,你的src路径并不是你最后的类路径,而且类的路径和文本文件不是在一个目录下就能找到的,明白?
      

  9.   

    试一下这个吧
    InputStream is = this.getClass().getClassLoader()
    .getResourceAsStream("bb.txt");