01: package org.incava.io;
02:
03: import java.io.*;
04: import java.util.Vector;
05:
06: public class FileExt {
07: /**
08: * Reads the file into a single string, which is null on error. The returned
09: * string will contain end-of-line characters. The <code>arg</code> argument
10: * is just so we can overload based on return type.
11: */
12: public static String readFile(String fileName, String arg) {
13: return readFile(new File(fileName), arg);
14: }
15:
16: /**
17: * Reads the file into a string array, without end-of-line characters
18: * (sequences). The array is null on error. The <code>arg</code> argument is
19: * just so we can overload based on return type.
20: */
21: public static String[] readFile(String fileName, String[] arg) {
22: return readFile(new File(fileName), arg);
23: }
24:
25: /**
26: * Reads the file into a single string, which is null on error.The
27: * <code>arg</code> argument is just so we can overload based on return
28: * type.
29: */
30: public static String readFile(File file, String arg) {
31: String[] contents = readFile(file, new String[] {});
32: if (contents == null) {
33: return null;
34: } else {
35: StringBuffer buf = new StringBuffer();
36: String lineSep = System.getProperty("line.separator");
37:
38: for (int i = 0; contents != null && i < contents.length; ++i) {
39: buf.append(contents[i] + lineSep);
40: }
41:
42: return buf.toString();
43: }
44: }
45:
46: /**
47: * Reads the file into a string array, without end-of-line characters
48: * (sequences). The <code>arg</code> argument is just so we can overload
49: * based on return type.
50: */
51: public static String[] readFile(File file, String[] arg) {
52: try {
53: BufferedReader br = new BufferedReader(new FileReader(file));
54: Vector vec = new Vector();
55:
56: String in;
57: while ((in = br.readLine()) != null) {
58: // contents.append(in + System.getProperty("line.separator"));
59: vec.addElement(in);
60: }
61:
62: return (String[]) vec.toArray(new String[] {});
63: } catch (Exception e) {
64: tr.Ace.log("exception: " + e);
65: return null;
66: }
67: }
68:
69: }
|