EOS 2  1.1.0
Einfache Objektbasierte Sprache
ResourceLoader.java
gehe zur Dokumentation dieser Datei
1 package de.lathanda.eos.base;
2 
3 import static java.awt.image.BufferedImage.TYPE_INT_RGB;
4 
5 import java.awt.image.BufferedImage;
6 import java.io.BufferedReader;
7 import java.io.File;
8 import java.io.FileInputStream;
9 import java.io.FileNotFoundException;
10 import java.io.IOException;
11 import java.io.InputStream;
12 import java.io.InputStreamReader;
13 
14 import javax.imageio.ImageIO;
15 import javax.swing.ImageIcon;
16 
25 public class ResourceLoader {
26  private static String workingDirectory;
32  public static BufferedImage loadResourceImage(String name) {
33  try (InputStream in = getResourceAsStream(name)){
34  return ImageIO.read(in);
35  } catch (IOException ioe) {
36  return createErrorImage(ioe);
37  }
38  }
44  public static BufferedImage loadLocalImage(String name) {
45  try (InputStream in = getLocalFileAsStream(name)){
46  return ImageIO.read(in);
47  } catch (IOException ioe) {
48  return createErrorImage(ioe);
49  }
50  }
56  public static void setWorkingDirectory(String workingDirectory) {
57  if (workingDirectory.endsWith("/")) {
58  ResourceLoader.workingDirectory = workingDirectory;
59  } else {
60  ResourceLoader.workingDirectory = workingDirectory + "/";
61  }
62  }
68  public static ImageIcon loadResourceIcon(String name) {
69  return new ImageIcon(loadResourceImage(name));
70  }
76  private static BufferedImage createErrorImage(Exception e) {
77  BufferedImage err = new BufferedImage(256, 256, TYPE_INT_RGB);
78  err.createGraphics().drawString(e.getLocalizedMessage(), 5, 30);
79  return err;
80  }
81  public static BufferedReader getResourceAsReader(String filename) throws FileNotFoundException {
82  return new BufferedReader(new InputStreamReader(getResourceAsStream(filename)));
83  }
91  public static InputStream getResourceAsStream(String filename) throws FileNotFoundException {
92  InputStream is = null;
93 
94  //1. try thread class loader
95  if (is == null) {
96  is = Thread.currentThread().getContextClassLoader().getResourceAsStream(filename);
97  }
98  //2. try resource class loader
99  if (is == null) {
100  is = ResourceLoader.class.getClassLoader().getResourceAsStream(filename);
101  }
102  //3. try system class loader
103  if (is == null) {
104  is = ClassLoader.getSystemResourceAsStream(filename);
105  }
106  //4. try as file
107  if (is == null) {
108  try {
109  is = new FileInputStream(filename);
110  } catch (FileNotFoundException fnfe) {
111  //nothing to do
112  }
113  }
114  //5. give up
115  if (is == null) {
116  throw new FileNotFoundException(filename);
117  }
118 
119  return is;
120  }
128  public static InputStream getLocalFileAsStream(String filename) throws FileNotFoundException {
129  InputStream is = null;
130  //1. try working directory
131  try {
132  is = new FileInputStream(workingDirectory + filename);
133  } catch (FileNotFoundException fnfe) {
134  //nothing to do
135  }
136  //2. try as file
137  if (is == null) {
138  try {
139  is = new FileInputStream(filename);
140  } catch (FileNotFoundException fnfe) {
141  //nothing to do
142  }
143  }
144  //3. give up
145  if (is == null) {
146  throw new FileNotFoundException(filename);
147  }
148 
149  return is;
150  }
159  public static InputStream getConfigFileAsStream(String subdirectory, String filename) throws FileNotFoundException {
160  InputStream is = null;
161  //1. Try user config
162  String home = System.getProperty("user.home");
163  File file = new File(home + "/"+subdirectory+"/"+filename);
164  try {
165  is = new FileInputStream(file);
166  } catch (FileNotFoundException fnfe) {
167  //nothing to do
168  }
169  //2. try as file
170  if (is == null) {
171  try {
172  is = new FileInputStream(filename);
173  } catch (FileNotFoundException fnfe) {
174  //nothing to do
175  }
176  }
177  //3. try system class loader
178  if (is == null) {
179  is = ClassLoader.getSystemResourceAsStream(filename);
180  }
181  //4. give up
182  if (is == null) {
183  throw new FileNotFoundException(filename);
184  }
185 
186  return is;
187  }
194  public static void closeQuietly(InputStream input) {
195 
196  try {
197  if (input != null) {
198  input.close();
199  }
200  } catch (IOException ioe) {
201  // ignore
202  }
203  }
204 }
static BufferedReader getResourceAsReader(String filename)
static InputStream getConfigFileAsStream(String subdirectory, String filename)
static void closeQuietly(InputStream input)
static ImageIcon loadResourceIcon(String name)
static BufferedImage loadResourceImage(String name)
static InputStream getResourceAsStream(String filename)
static InputStream getLocalFileAsStream(String filename)
static BufferedImage loadLocalImage(String name)
static void setWorkingDirectory(String workingDirectory)
Impressum