class.getResource 的根目录就是当前跟目录
class.getClassLoader().getResource 的当前目录就是当前跟目录
private static void ClassLoad_VS_Class_getPath() {
String classGetResource = ReadResource.class.getResource("/").getPath();
String classLoadGetResource = ReadResource.class.getClassLoader().getResource("").getPath();
logger.info(
"n"
+ "classGetResource default path: " + classGetResource
+ "n"
+ "classLoadGetResource default path: " + classLoadGetResource);
}
private static void ClassLoaderGetResource() throws IOException {
InputStream in = ReadResource.class.getClassLoader().getResourceAsStream("properties/test.properties");
Properties properties = new Properties();
properties.load(in);
String name = properties.getProperty("name");
logger.info("name is :"+ name );
}
private static void GetResource() throws IOException {
InputStream in = ReadResource.class.getResourceAsStream("/properties/test.properties");
Properties properties = new Properties();
properties.load(in);
String name = properties.getProperty("name");
logger.info("name is :"+ name );
}
FileReader 读取文件
private static void ReadLocalFile() throws IOException {
//String filePath ="D://E//TEMP//product4FileReader.txt";
String filePath = ReadByFileReaderTest.class.getResource("/product4FileReader.txt").getPath();
logger.info(filePath);
File file=new File(filePath);
if( file.isFile() && file.exists()) {
Reader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String strTemp = "";
while ((strTemp = bufferedReader.readLine()) != null) {
System.out.println(strTemp);
}
//注意关闭流
bufferedReader.close();
fileReader.close();
}
}
绕8圈读取本地文件
private static void InputStreamReader01() throws IOException {
//String fileName="D://temp//tempdata//product4FileReader.txt";
String fileName = ReadByFileInpuStream.class.getResource("/product4FileReader.txt").getPath();
String encoding="utf-8";
File file = new File(fileName);
if(file.isFile() && file.exists()) {
String strTmp = ""; //临时变量
StringBuilder stringBuilder = new StringBuilder(); //
InputStream inputStream = new FileInputStream(file);
Reader inputStreamReader = new InputStreamReader(inputStream,encoding); //如果需要进行编码
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
while ((strTmp = bufferedReader.readLine()) != null) {
stringBuilder.append(strTmp);
stringBuilder.append("n");
}
System.out.println(stringBuilder.toString());
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
}
}
InputStream 读取本地文件
通过对比,看到这个结构最清晰,以后读取文件,就用它了。
private static void ReadFileByInpuStreamGood() throws IOException {
//String fileName="D://temp//tempdata//product4FileReader.txt";
String fileName = ReadByFileInpuStream.class.getResource("/product4FileReader.txt").getPath();
String encoding="utf-8";
InputStream inputStream = new FileInputStream(fileName);
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
byte[] bytes = new byte[1024];
int len=0;
while((len=bufferedInputStream.read(bytes))!=-1){
String str = new String(bytes,0,len, Charset.forName(encoding));
System.out.println(str);
}
bufferedInputStream.close();
inputStream.close();
}
01Simple02
02dom4j
03jsoup
04 jackson
05 fastjson
others
//https://blog.csdn.net/Captain249/article/details/98172911
//多重获取路径方式
String strClassGetResource= jsoup05GetAttr.class.getResource("/jsoup04GetElement.html").getPath();
String strClassGetClassLoader =jsoup05GetAttr.class.getClassLoader().getResource("jsoup04GetElement.html").getPath();
String strClassLoader =ClassLoader.getSystemClassLoader().getResource("jsoup04GetElement.html").getPath();
String strClassLoader2 =ClassLoader.getSystemResource("jsoup04GetElement.html").getPath();
String strThread =Thread.currentThread().getContextClassLoader().getResource("jsoup04GetElement.html").getPath();



