Java获取文件路径及路径乱码问题

本文讨论了Java在获取文件路径时遇到的中文乱码问题,包括System.getProperty("user.dir")等不同方式的示例,并提供了Windows系统的路径示例。针对乱码问题,文章建议使用URLDecoder.decode(p, "UTF-8")进行解码,推荐使用方法四是解决路径乱码的解决方案。" 70599676,5653230,C++实现大数加减法类,"['C++', '算法', '数据结构']

System.getProperty(“user.dir”)
构造:File(path)
构造:FileInputStream(“path”)
XXX.class.getResource("").getPath()
XXX.class.getClassLoader().getResource("").getPath()
(以下演示均为Windows系统)
相对路径:src/test/resources/test.txt
绝对路径:D:\glearning\my_opensource\somproject\src\main\resources\test\test.txt
“.”符号:java文件所在的当前目录(编译后是.class文件所在的当前目录)
“…”符号:java文件所在的上一级目录(编译后.class文件的上一级目录)
“/”符号:以/开头的,在URL类中表示项目的根路径(maven编译后就是target目录的位置)。

  1. System.getProperty(“user.dir”)
    表示当前用户目录,即jvm调用目录
  2. File(path)与FileInputStream(path)

java获取项目路径中文乱码

解决方法

import java.io.UnsupportedEncodingException;  
import java.net.URI;  
import java.net.URL;  
import java.net.URLDecoder;  
  
public class Test01 {  
  
    public static void main(String[] args) {  
        getPathMethod01();  
        getPathMethod02();  
        getPathMethod03();  
        getPathMethod04();  
    }  
    private static String getPathMethod01(){  
        String p = System.getProperty("user.dir");  
        System.out.println("方法一路径:"+p);  
        //方法一路径:E:\test\test04练  习
        return p;  
    }  
      
    private static String getPathMethod02(){  
        URL url= Test01.class.getResource("");  
        String p = url.getPath();  
        System.out.println("方法二路径:"+p);  
		//方法二路径:/E:/test/test04%e7%bb%83%20%20%e4%b9%a0/bin/com/fei/
        try {  
            System.out.println("方法二解码路径:"+URLDecoder.decode(p, "UTF-8"));  
			//方法二解码路径:/E:/test/test04练  习/bin/com/fei/
        } catch (UnsupportedEncodingException e) {  
            e.printStackTrace();  
        }  
        return p;  
    }  
      
    private static String getPathMethod03(){  
        URL url= Test01.class.getResource("/");  
        String p = url.getPath();  
        System.out.println("方法三路径:"+p); 
		//方法三路径:/E:/test/test04%e7%bb%83%20%20%e4%b9%a0/bin/
        try {  
            System.out.println("方法三解码路径:"+URLDecoder.decode(p, "UTF-8"));  
			//方法三解码路径:/E:/test/test04练  习/bin/
        } catch (UnsupportedEncodingException e) {  
            e.printStackTrace();  
        }  
        return p;  
    }  
    private static String getPathMethod04(){  
        try {  
            URI uri = Test01.class.getResource("/").toURI();  
            String p = uri.getPath();  
            System.out.println("方法四路径:"+p);  
			//方法四路径:/E:/test/test04练  习/bin/
            return p;  
        } catch (Exception e) {  
            e.printStackTrace();  
            throw new RuntimeException(e);  
        }  
    }  
}  

通过看代码和运行结果可以看到,用url.getPath()获取到的路径被utf-8编码了,用URLDecoder.decode(p, “UTF-8”)即可解码。
推荐使用方法四。

(Mathcad+Simulink仿真)基于扩展描述函数法的LLC谐振变换器小信号分析设计内容概要:本文介绍了基于扩展描述函数法(Extended Describing Function Method)对LLC谐振变换器进行小信号建模与分析的设计方法,结合Mathcad数学计算工具与Simulink仿真平台,系统地推导了LLC变换器在不同工作模式下的小信号模型,重点解决了传统小信号分析难以适用于强非线性谐振电路的问题。文中详细阐述了扩展描述函数法的理论基础,构建了系统的等效控制-输出传递函数,并通过Simulink搭建闭环仿真模型验证了所建模型的准确性与实用性,为LLC谐振变换器的环路设计与动态性能优化提供了理论依据和技术支持。; 适合人群:具备电力电子、自动控制理论基础,熟悉Matlab/Simulink和Mathcad工具,从事开关电源、DC-DC变换器或新能源变换系统研发的研究生及工程技术人员。; 使用场景及目标:①掌握LLC谐振变换器的小信号建模方法,克服非线性系统线性化难点;②利用扩展描述函数法提升高频谐振变换器的控制系统设计精度;③结合Mathcad与Simulink实现从理论推导到仿真验证的全流程分析。; 阅读建议:建议读者结合Mathcad公式推导与Simulink仿真模型同步学习,重点关注扩展描述函数的构建过程与小信号等效电路的建立逻辑,动手复现文中的建模步骤以加深对LLC动态特性与控制设计的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值