idea项目模块下使用File创建文件对象的问题

图片描述

这是我的项目目录结构,JavaNOte是项目, Review是模块module, 这个模块下的day8包下的_file文件中我写了如下代码

        File file4 = new File("a.txt");
        System.out.println(file4.getAbsolutePath());
        //输出结果是:F:\JAVA\JavaNote\Review\a.txt

输出结果是:F:JAVAJavaNoteReviewa.txt


图片描述
我的另外一个项目的目录结构,JavaEE是项目,day_08是模块,代码写在模块的demo2包下的FileDemo2类中.写了如下代码

         File file = new File("a.txt");
        System.out.println("获取File对象的绝对路径:"+file.getAbsolutePath());
        //输出结果是: 获取File对象的绝对路径:F:\JAVA\JavaEE\a.txt

另外一个输出结果是:获取File对象的绝对路径:F:JAVAJavaEEa.txt
请问为什么结果会不同?明明是一样的代码,为什么相对的路径会不一样,一个在项目路径下,一个在模块路径下?

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 5k
2 个回答

因为这个路径和运行环境相关,不同的运行环境下获取到的默认路径是不一样的

原因找到了: 第一个相对路径是模块,是因为我写的代码放在@Test测试方法里面运行的

       第二个相对路径是项目,是因为我写的代码放在main方法里面运行的
       
       那么问题来了,为什么@Test会改变相对路径呢?
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题