Java通过URL的getpath方法获取的返回路径乱码解决方案

一、问题描述

  Java通过URL的getpath方法获取的返回路径因为中文或者空格等字符而乱码问题。

原代码如下:

Properties pro = new Properties();
ClassLoader classLoader = JDBCUtils.class.getClassLoader();
URL res = classLoader.getResource("jdbc.properties");
String path = res.getPath();
System.out.println(path);
pro.load(new FileReader(path));

输出结果:

java.io.FileNotFoundException: E:\JavaWeb\JDBC\out\production\Day01-JDBC%e5%85%a5%e9%97%a8\jdbc.properties (系统找不到指定的路径。)

二、解决方法

解决方案:使用URI的getPath方法来获取路径。

Properties pro = new Properties();
ClassLoader classLoader = JDBCUtils.class.getClassLoader();
URL res = classLoader.getResource("jdbc.properties");
URI uri = res.toURI();
String path = uri.getPath();
System.out.println(path);
pro.load(new FileReader(path));

输出结果:

/E:/JavaWeb/JDBC/out/production/Day01-JDBC入门/jdbc.properties

注:利用url类的成员方法直接获取uri对象

你可能感兴趣的:(#,JavaWeb,Java之美,java,乱码,jdbc)