[Java] java 从jar包中读资源文件,如配置文件等 →→→→→进入此内容的聊天室

来自 , 2019-06-08, 写在 Java, 查看 108 次.
URL http://www.code666.cn/view/d7a728a6
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.InputStreamReader;
  5. import java.net.URL;
  6.  
  7. import book.basic.HelloWorld;
  8.  
  9. /**
  10.  * 从jar包中读资源文件,如配置文件等
  11.  */
  12. public class ResourceReader {
  13.  
  14.         /**
  15.          * 第一种方法读Jar包中的资源信息,首先读取资源的URL,再读取URL对应的文件信息
  16.          *
  17.          * @param class1
  18.          *            类
  19.          * @param fileName
  20.          *            文件的相对路径
  21.          */
  22.         public static void readFromJarA(Class class1, String fileName) {
  23.                 // getResource得到一个URL对象来定位资源
  24.                 URL fileURL = class1.getResource(fileName);
  25.                 System.out.println("资源的URL: " + fileURL);
  26.                 try {
  27.                         // 打开fileURL对应的文件流
  28.                         InputStream inputstream = fileURL.openStream();
  29.                         BufferedReader bufferedreader = new BufferedReader(
  30.                                         new InputStreamReader(inputstream));
  31.                         String str;
  32.  
  33.                         while ((str = bufferedreader.readLine()) != null) {
  34.                                 System.out.println(str);
  35.                         }
  36.                         inputstream.close();
  37.                 } catch (IOException ioexception) {
  38.                         ioexception.printStackTrace();
  39.                 }
  40.         }
  41.  
  42.         /**
  43.          * 第二种方法读Jar包中的资源信息。
  44.          *
  45.          * @param class1
  46.          *            类
  47.          * @param fileName
  48.          *            文件的相对路径
  49.          */
  50.         public static void readFromJarB(Class class1, String fileName) {
  51.                 // getResourceAsStream取得该资源输入流的引用,保证程序可以从正确的位置抽取数据
  52.                 InputStream inputstream = class1.getResourceAsStream(fileName);
  53.                 if (inputstream != null) {
  54.                         BufferedReader bufferedreader = new BufferedReader(
  55.                                         new InputStreamReader(inputstream));
  56.                         String str;
  57.                         try {
  58.                                 while ((str = bufferedreader.readLine()) != null) {
  59.                                         System.out.println(str);
  60.                                 }
  61.                                 inputstream.close();
  62.                         } catch (IOException ioexception) {
  63.                                 ioexception.printStackTrace();
  64.                         }
  65.                 }
  66.         }
  67.  
  68.         public static void main(String[] args) {
  69.                 Class class1 = HelloWorld.class;
  70.                 // 如果文件相对路径前没有"/",则表示相对于该class文件的位置
  71.                 String filePath = "config0.conf";
  72.                 ResourceReader.readFromJarA(class1, filePath);
  73.                 System.out.println();
  74.                 filePath = "Resources/config1.conf";
  75.                 ResourceReader.readFromJarB(class1, filePath);
  76.                 System.out.println();
  77.  
  78.                 // 如果在文件相对路径前加上 "/",则表示相对于jar文件的根目录位置。
  79.                 // 如"/Resources"则表示jar文件的第一层目录,目录为Resources
  80.                 filePath = "/book/basic/Resources/config2.conf";
  81.                 ResourceReader.readFromJarA(class1, filePath);
  82.         }
  83. }
  84.  

回复 "java 从jar包中读资源文件,如配置文件等"

这儿你可以回复上面这条便签

captcha