Obtenir l'URL de la ressource et le contenu en Java

Sarwan Soomro 12 octobre 2023
  1. Utilisez la fonction getResource() pour obtenir l’URL de la ressource en Java
  2. Utilisez getResourceAsStream() pour obtenir le contenu des ressources en Java
Obtenir l'URL de la ressource et le contenu en Java

Ce tutoriel montrera comment obtenir des URL de ressources et lire des fichiers de ressources en Java avec la fonction getResource().

Utilisez la fonction getResource() pour obtenir l’URL de la ressource en Java

Nous allons utiliser la méthode getResource() en Java pour récupérer l’URL de trois fichiers : image.png, image1.png, resourcetext.txt.

Nous passerons les URL des ressources dans des chaînes dans le corps de la fonction getResource(). La fonction recherche ensuite la chaîne de ressource donnée et renvoie un objet contenant une URL.

Syntaxe:

getResource(String);
public resource = yourclassname.getResource("Resource URL");

Exemple de code :

/*//you will learn how to get image URL in the following program
//import statements
 */
import java.lang.*;
import java.net.URL;
public class getImageUrl {
  public static void main(String[] args) throws Exception {
    getImageUrl obj = new getImageUrl();
    @SuppressWarnings("rawtypes") Class resource = obj.getClass();
    URL imageurl = resource.getResource("/image.png");
    System.out.println("Resource URL one is = " + imageurl);
    URL imageurl2 = resource.getResource("/image2.png");
    System.out.println("Resource URL two is = " + imageurl2);
    URL texturl = resource.getResource("/textresource.txt");
    System.out.println("Resource URL of the text file  is = " + texturl);
  }
}

Production:

Resource URL one is = file:/C:/Users/NAME/Desktop/JAVA/get%20resource%20url%20java/bin/image.png
Resource URL two is = file:/C:/Users/NAME/Desktop/JAVA/get%20resource%20url%20java/bin/image2.png
Resource URL of the text file is = file:/C:/Users/NAME/Desktop/JAVA/get%20resource%20url%20java/bin/textresource.txt

Comme nous pouvons le voir, nous avons stocké les trois fichiers dans la chaîne URL. Ensuite, nous utilisons la méthode obj.getClass() pour obtenir la classe principale qui reçoit l’URL de l’image.

La fonction getResource() est celle qui renvoie l’URL.

Utilisez getResourceAsStream() pour obtenir le contenu des ressources en Java

Java réserve une méthode appelée getResourceAsStream() pour lire les fichiers. La fonction renvoie un objet InputStream contenant la ressource spécifiée de la classe.

Pour l’exemple ci-dessous, nous utiliserons getResourceAsStream() pour lire ce fichier : /get resource URL java/src/readfile/GetResourceReadFile.java. Et la chaîne getresourcefromhere = "readfile/example.json"; est l’endroit où nous stockons le fichier JSON.

Syntaxe:

private InputStream getFileFromResourceAsStream(String getresourcefromhere) {
  ClassLoader cL = getClass().getClassLoader();
  InputStream inputStream = cL.getResourceAsStream(getresourcefromhere);
  return inputStream;
}

Consultez le programme complet suivant si vous avez compris la syntaxe de base.

Ce programme fonctionne sur toutes les plateformes. Vous devez faire attention à la classe principale et à la gestion des répertoires de fichiers.

// import necessary packages
package readfile;
import java.io.*;
import java.nio.charset.StandardCharsets;
// start function
public class GetResourceReadFile {
  private static final String String = null;
  public static void main(String[] args) throws IOException, Exception {
    GetResourceReadFile app = new GetResourceReadFile();
    // get resource file
    String getresourcefromhere = "readfile/example.json";
    // use inputStream to return object containing resource
    InputStream getresourceandreadit = app.getFileFromResourceAsStream(getresourcefromhere);
    printInputStream(getresourceandreadit);
  }
  private InputStream getFileFromResourceAsStream(String getresourcefromhere) {
    // load class
    ClassLoader cL = getClass().getClassLoader();
    InputStream inputStream = cL.getResourceAsStream(getresourcefromhere);
    return inputStream;
  }
  private static void printInputStream(InputStream r) {
    try (InputStreamReader sR = new InputStreamReader(r, StandardCharsets.UTF_8);
         BufferedReader R = new BufferedReader(sR)) {
      String GOT_IT = String;
      // not necessary but will give you basic idea
      if (GOT_IT == String) {
        // you can print multiple files
        while ((GOT_IT = R.readLine()) != null) {
          // print file
          System.out.println(GOT_IT);
        }
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

Production:

{
    "File Name": "Demonstration File",
    "File Type": "JSON FILE",
    "File Reader": "getResource",
    "File creation date:": 2/18/2022,
    "Platform": {
        "Langauge Type": "Programming",
        "Langugae Name": "JAVA",
        "Platform": "Oracle",
        "Importance": "Very High"
    },
    "Development Environment": [
        { "JDK": "JAVA", "LATEST": "17" }
    ]
}

L’ensemble du programme est le même que l’exemple précédent avec URL. La seule différence est le InputStream et ClassLoader cL = getClass().getClassLoader();.

Sarwan Soomro avatar Sarwan Soomro avatar

Sarwan Soomro is a freelance software engineer and an expert technical writer who loves writing and coding. He has 5 years of web development and 3 years of professional writing experience, and an MSs in computer science. In addition, he has numerous professional qualifications in the cloud, database, desktop, and online technologies. And has developed multi-technology programming guides for beginners and published many tech articles.

LinkedIn