Java Resource Load getResourceBundle(String resourceURI, Locale targetLocale)

Here you can find the source of getResourceBundle(String resourceURI, Locale targetLocale)

Description

get Resource Bundle

License

Open Source License

Declaration

public static ResourceBundle getResourceBundle(String resourceURI,
            Locale targetLocale) throws MalformedURLException, IOException 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * Copyright (c) 2001, 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors://from   ww w .  j  av a2  s  .  c om
 *     IBM Corporation - initial API and implementation
 *     Jens Lukowski/Innoopract - initial renaming/restructuring
 *     
 *******************************************************************************/

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Locale;
import java.util.ResourceBundle;
import org.eclipse.core.runtime.Platform;

public class Main {
    public static ResourceBundle getResourceBundle(String resourceURI)
            throws MalformedURLException, IOException {
        return getResourceBundle(resourceURI, Locale.getDefault());
    }

    public static ResourceBundle getResourceBundle(String resourceURI,
            Locale targetLocale) throws MalformedURLException, IOException {
        // try to load bundle from the location specified in the resourceURI
        // we make the assumption that the resourceURI points to the local
        // file system

        int index = resourceURI.lastIndexOf("/"); //$NON-NLS-1$
        if (index == -1) {
            throw new IllegalArgumentException("Invalid resourceURI"); //$NON-NLS-1$
        }

        // Below we set 'resourceDirectory' so that it ends with a '/'.
        // Here's an excerpt from the ClassLoader Javadoc ...
        // Any URL that ends with a '/' is assumed to refer to a directory.
        // Otherwise, the URL is assumed
        // to refer to a JAR file which will be opened as needed.
        //
        String resourceDirectory = resourceURI.substring(0, index + 1);
        String resourceBundleName = resourceURI.substring(index + 1);

        // create a class loader with a class path that points to the resource
        // bundle's location
        //         
        URL[] classpath = new URL[1];
        classpath[0] = Platform.resolve(new URL(resourceDirectory));
        ClassLoader resourceLoader = new URLClassLoader(classpath, null);

        return ResourceBundle.getBundle(resourceBundleName, targetLocale,
                resourceLoader);
    }
}

Related

  1. getResourceAsString(String name)
  2. getResourceAsString(String path)
  3. getResourceAsString(String relativePath)
  4. getResourceAsTempFile(Object context, String resourceName)
  5. getResourceBundle(String baseName)
  6. getResourceBundleForLoc(String language, String fileName)
  7. getResourceBytes(String path)
  8. getResourceByZip(final ZipInputStream zipIN, final String resourcePath)
  9. getResourceDirectory()