Java获取非jar包中指定路径的配置文件
public static String getContent(String path){
FileInputStream in=null;
try{
File file = new File(path);
if(file.exists()){
Long fileLength = file.length();
byte[] fileContent = new byte[fileLength.intValue()];
in = new FileInputStream(file);
in.read(fileContent);
return new String(fileContent, "UTF-8");
}
return null;
}catch (Exception ex){
return null;
}finally {
try {
in.close();
} catch (IOException e) {
}
}
}
public static void main(String[] args) {
System.out.println(getContent("E:\\cardata.json"));
}
java获取target下的配置文件
getResource(path):打成jar包不能获取到包中的配置文件
System.out.println(FileUtils.getContent(FileUtils.class.getClassLoader().getResource("cardata.json").getPath()));
java获取和jar包同级的配置文件
即jar包和配置文件存放在同一个文件夹中
System.out.println(getContent(System.getProperty("user.dir")+"\\cardata.json"));
//System.getProperty("user.dir")获取当前jar包所在的路径
Java获取jar包中的配置文件
FileUtils.class.getClassLoader().getResourceAsStream(“fileName”):从 classpath 路径(即:src 或 resources 路径下)下查找文件的
public static String getInputStream(InputStream inputStream){
BufferedReader reader=null;
try{
reader = new BufferedReader(new InputStreamReader((inputStream)));
StringBuffer sb = new StringBuffer();
String line=null;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
return sb.toString();
}catch (Exception ex){
return null;
}finally {
try {
reader.close();
inputStream.close();
} catch (IOException e) {
}
}
}
public static void main(String[] args) {
System.out.println(getInputStream(FileUtils.class.getClassLoader().getResourceAsStream("cardata.json")));
}
为什么打成jar包之后读取方法会不一样
打成jar包之后,jar包即是一个文件,不再是一个文件夹,再次通过绝对路径不能获取到配置文件,此时,可通过类加载器读取jar包中的资源文件。