当时在Idea中编码时通过this.getClass().getResource来获取文件的路径,没有任何的问题.

但是在打成jar以后,这是是打成jar包不是war,结果发现不能正常的读取工程里面的文件,
但是在jar里面对应的class路径下可以看到该文件,后来将文件直接放到和我一个java文件平级的目录下,问题依然,
最后使用了InputStream inputStream=this.getClass().getResourceAsStream("/xxx/xx.json");
来读取,才解决了问题
切记打成jar后如果需要用到这种框架之外的文件的话要用上面的方法来读取。
代码:

                           // 读的json类型文件

[ {
"url": "aa",
"name": "bb",
"psw": "cc"
},
{
"url": "12",
"name": "daxi",
"psw": "daxi"
}
]

            //打jar包使用

try {
String name = URLDecoder.decode("/"+folderName+"/" + jsonName, "UTF-8");
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(name);
if (inputStream!=null) { // 判断文件是否存在
return new String(IOUtils.readFully(inputStream, -1, true),"UTF-8");
} else {
System.out.println("找不到指定的文件=="+"/"+folderName+"/" + jsonName);
}
} catch (Exception e) {
System.out.println("读取文件内容出错");
e.printStackTrace();
}
//war包使用

try {
String rootPaht = this.getClass().getResource("/").getPath();
String filePath = rootPaht + "/"+folderName+"/" + jsonName;
File file = new File(filePath);
// 判断文件是否存在

   if (file.isFile() && file.exists()) {
    // 考虑到编码格式

InputStreamReader read = new InputStreamReader(new FileInputStream(file), "UTF-8");

BufferedReader bufferedReader = new BufferedReader(read);
StringBuilder allJson = new StringBuilder();
String lineTxt = null;
while ((lineTxt = bufferedReader.readLine()) != null) {
//System.out.println(lineTxt);
allJson.append(lineTxt);
}
read.close();
return allJson.toString();
} else {
System.out.println("找不到指定的文件");
}
} catch (Exception e) {
System.out.println("读取文件内容出错");
e.printStackTrace();
}