Не удается прочитать файл JSON, заблокированный в папке ресурсов приложения на Azure - PullRequest
0 голосов
/ 06 марта 2019

У меня есть приложение весенней загрузки. Я пытаюсь прочитать файл JSON, который находится в моей папке ресурсов (с помощью загрузчика классов). Я развернул свое приложение на Azure, оно дает мне ошибку, такого файла не существует, и когда я печатаю путь, оно дает мне ноль.

1 Ответ

0 голосов
/ 07 марта 2019

Я попытался создать простой проект Maven, чтобы решить вашу проблему.

Моя структура исходного кода похожа на приведенную ниже.

simpleMavenProj
   |-src/main/java/Hello.java
   |-src/main/resources/hello.json

Содержание Hello.java указано ниже.

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;

public class Hello {

    public static void main(String[] args) throws IOException {
        InputStream resourceInputStream = null;
        URL resourceURL = Hello.class.getClassLoader().getResource("resources/hello.json");
        if(resourceURL == null) {
            System.out.println("Get the InputStream of hello.json in IDE");
            resourceInputStream = new FileInputStream(Hello.class.getClassLoader().getResource("").getPath()+"../../src/main/resources/hello.json");
        } else {
            System.out.println("Get the InputStream of hello.json from runnable jar");
            resourceInputStream = Hello.class.getClassLoader().getResourceAsStream("resources/hello.json");
        }
        System.out.println();
        StringBuilder builder = new StringBuilder();
        BufferedReader br = new BufferedReader(new InputStreamReader(resourceInputStream));
        String line = null;
        while((line = br.readLine()) != null) {
            builder.append(line+"\n");
        }
        br.close();
        System.out.println(builder.toString());
    }
}

И hello.json:

{
    "hello":"world"
}

Если вы разрабатываете в IDE, запустите код, и результат будет:

Get the InputStream of hello.json in IDE

{
    "hello":"world"
}

Еще для генерациизапускаемый файл JAR, а затем запустить файл JAR через java -jar simpleMavenProj.jar и в результате:

Get the InputStream of hello.json from runnable jar

{
        "hello":"world"
}

Надеюсь, это поможет.Любая проблема, пожалуйста, не стесняйтесь, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...