关于main方法和单元测试方法文件路径问题

程序如下:

package itheima02;

import org.junit.Test;

import java.io.File;

public class Demo04Path {
    public static void main(String[] args) {
        File f = new File("day18_08_05\\src\\config.properties");
        System.out.println(f.getAbsolutePath());
        //D:\IDEA\Java_Code\javaee354\day18_08_05\src\config.properties
    }
    @Test
    public void getPath(){
        File f = new File("day18_08_05\\src\\config.properties");
        System.out.println(f.getAbsolutePath());
        //D:\IDEA\Java_Code\javaee354\day18_08_05\day18_08_05\src\config.properties
    }
    @Test
    public void getPath1(){
        File f = new File("src\\config.properties");
        System.out.println(f.getAbsolutePath());
        //D:\IDEA\Java_Code\javaee354\day18_08_05\src\config.properties
    }
}

项目中文件路径如图:
在这里插入图片描述
在main中我们得到文件的路径为:
//D:\IDEA\Java_Code\javaee354\day18_08_05\src\config.properties

方法getPath和main中的代码一致,结果得到的路径确不相同:
//D:\IDEA\Java_Code\javaee354\day18_08_05\day18_08_05\src\config.properties
多了一个项目路径:\day18_08_05

在getPath1方法中我们做了改进: File f = new File(“src\config.properties”);
去掉了项目路径,得到了我们想要的结果.

总结如下:
@Test单元测试会给路径多增加出一个day18_08_05路径
所以使用单元测试的时候要注意路径
带有路径操作的最好在main方法里边执行

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以给你举一个 ConsumerIRService 的示例。 首先,你需要在 ConsumerIRService.java 文件中增加判断主副屏的逻辑,并调用相应的 API 实现主副屏的切换。示例代码如下: ```java import android.os.SystemProperties; import android.hardware.ConsumerIrManager; public class ConsumerIRService extends IConsumerIRService.Stub { private ConsumerIrManager mCIR; public ConsumerIRService(Context context) { mCIR = (ConsumerIrManager)context.getSystemService(Context.CONSUMER_IR_SERVICE); } public void transmit(int carrierFrequency, int[] pattern) { if (SystemProperties.getBoolean("sys.display.use_main_screen", true)) { mCIR.transmit(carrierFrequency, pattern); } else { mCIR.transmitSecondary(carrierFrequency, pattern); } } } ``` 这段代码中,我们新增了一个 if 语句,判断了 `sys.display.use_main_screen` 属性是否为 true。如果为 true,就调用 `mCIR.transmit()` 方法发送红外信号;否则,就调用 `mCIR.transmitSecondary()` 方法发送红外信号到副屏。 接下来,你可以使用 diff 工具生成 ConsumerIRService.java 的补丁文件。示例命令如下: ``` diff -u ConsumerIRService.java.orig ConsumerIRService.java > consumerirservice.patch ``` 这个命令会将 ConsumerIRService.java 文件的修改内容保存到 consumerirservice.patch 文件中。 最后,你可以在 rk3588 Android12 的源代码目录中执行 patch 命令,将补丁文件应用到源代码中。示例命令如下: ``` patch -p1 < consumerirservice.patch ``` 这个命令会将 consumerirservice.patch 文件中的修改内容应用到 ConsumerIRService.java 文件中。 需要注意的是,补丁文件的生成和应用需要根据具体的源代码目录和文件结构进行调整。同时,修改底层源码可能会带来系统不稳定、兼容性等问题,需要进行充分的测试和验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值