【问题标题】:Reading a file inside jar in java在java中读取jar中的文件
【发布时间】:2015-06-15 00:43:36
【问题描述】:

我有一个 txt 文件和 java 文件捆绑在 jar 中的情况。我正在从 java 中读取 txt 文件,该文件仅捆绑在 jar 中。

在读取文件时,在 Java 中获取 FileNotFoundException 并且 txt 文件位于 jar 中捆绑的同一文件夹中。

我正在从测试类示例代码中调用此 Java 方法。

public static void loadtxtfile(){

    try {  
        InputStream in = 
            Utils.class.getClassLoader().getResourceAsStream("sample.txt");


         File f = new File(JetUtils.class.getClassLoader().getResource("dd.js").getFile());
         //OJetBase.class.getClassLoader().getResourceAsStream("logging.properties");

          BufferedReader input = new BufferedReader(new FileReader(js_filepath));
          StringBuffer buffer = new StringBuffer();

          while ((text = input.readLine()) != null)
              buffer.append(text + "\n");
          java_script = buffer.toString();
}

测试电话 - Utils.loadtxtfile();

我尝试了所有选项。

【问题讨论】:

  • 您正在从ClassLoader 收集File f = ,然后使用new FileReader(**js_filepath**)
  • 你不能在类路径中的资源上使用File

标签: java file text jar loading


【解决方案1】:

您不能从 jar 文件中读取资源作为 java.io.File 对象,因为它们不存在于文件系统中。只需使用java.lang.Classloader.getResourceAsStream(String name)

Reader inputStreamReader = new InputStreamReader(
                JetUtils.class.getClassLoader().getResourceAsStream("dd.js"));
BufferedReader jsReader = new BufferedReader(inputStreamReader);

StringBuilder javascript = new StringBuilder();
String input;
while ((input = jsReader.readln()) != null) {
    javascript.append(input);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    相关资源
    最近更新 更多