01: package com.sun.portal.desktop.util;
02:
03: import java.io.*;
04: import java.net.URL;
05:
06: /**
07: * $Id: Resource.java
08: * Copyright 2002 Sun Microsystems, Inc. All
09: * rights reserved. Use of this product is subject
10: * to license terms. Federal Acquisitions:
11: * Commercial Software -- Government Users
12: * Subject to Standard License Terms and
13: * Conditions.
14: *
15: * Sun, Sun Microsystems, the Sun logo, and Sun ONE
16: * are trademarks or registered trademarks of Sun Microsystems,
17: * Inc. in the United States and other countries.
18: */
19: /**
20: * This class provides generic methods to locate a file and return its contents .
21: */
22: public final class Resource {
23: public static String read(final String aFileName) {
24: try {
25: String data = "";
26: InputStream in = getInputStream(Resource.class, aFileName);
27: data = read(new InputStreamReader(in));
28: in.close();
29: return data;
30: } catch (Exception e) {
31: return "";
32: }
33: }
34:
35: public static InputStream getInputStream(Class aClass,
36: final String aResourceLocation) throws IOException {
37:
38: InputStream in = aClass.getResourceAsStream(aResourceLocation);
39: //may be absoulte file path is given
40: if (in == null) {
41: try {
42: //works well if the user has given absolute path
43: in = new FileInputStream(aResourceLocation);
44: } catch (FileNotFoundException e) {
45: //works well if the user has given the relative path to the
46: //location of class file
47: String directoryURL = aClass.getProtectionDomain()
48: .getCodeSource().getLocation().toString();
49: String fileURL = directoryURL + aResourceLocation;
50: URL url = new URL(fileURL);
51: in = url.openStream();
52: }
53: }
54:
55: if (in != null) {
56: return in;
57: } else {
58: throw new FileNotFoundException("Resource Name: "
59: + aResourceLocation);
60: }
61: }
62:
63: public static String read(final Reader aReader) throws IOException {
64: String lResult = "";
65: try {
66: BufferedReader buffReader;
67: if (aReader instanceof BufferedReader) {
68: buffReader = (BufferedReader) aReader;
69: } else {
70: buffReader = new BufferedReader(aReader);
71: }
72:
73: lResult = read(buffReader);
74: aReader.close();
75: } catch (IOException e) {
76: throw e;
77: }
78: return lResult;
79: }
80:
81: private static final String read(final BufferedReader aReader)
82: throws IOException {
83: StringBuffer sb = new StringBuffer();
84: char[] data = new char[2048];
85: int count = 0;
86:
87: while ((count = aReader.read(data)) != -1) {
88: sb.append(data, 0, count);
89: }
90:
91: aReader.close();
92: return sb.toString();
93: }
94: }
|