View Javadoc

1   /*
2    * Fsgrep is a simple Java application which allows a user to
3    * search all files in a directory structure for lines matching
4    * a given pattern.  Its functionality is a combination of the
5    * Unix 'find' and 'grep' utilities.
6    * Visit [http://fsgrep.sourceforge.net/] for more information.
7    * 
8    * Copyright (C) 2003-2006 Murali Krishnan [murali_ca_us@users.sourceforge.net]
9    * 
10   * Fsgrep is free software; you can redistribute it and/or modify
11   * it under the terms of version 2 of the GNU General Public
12   * License as published by the Free Software Foundation.
13   * 
14   * Fsgrep is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Public License for more details.
18   * 
19   * You should have received a copy of the GNU General Public License
20   * along with Fsgrep (see the file named LICENSE.txt); if not, write
21   * to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
22   * Boston, MA  02111-1307  USA
23   */
24  
25  package mk.fsgrep.util.output;
26  
27  
28  import java.io.*;
29  
30  
31  /***
32   * Send output to a given file.
33   * 
34   * @author  Murali Krishnan
35   *
36   */
37  public class FileOutput extends OutputDestination {
38  
39      //------------------------------------------------------------
40      //- Class Variables
41  
42  
43  
44      //------------------------------------------------------------
45      //- Class Functions
46  
47  
48  
49      //------------------------------------------------------------
50      //- Instance Variables
51  
52      private String _filename = "";
53      private FileWriter _fileWriter = null;
54      private PrintWriter _printWriter = null;
55  
56  
57      //------------------------------------------------------------
58      //- Constructors
59  
60      public FileOutput(String filename) {
61          _filename = filename;
62          try {
63              _fileWriter = new FileWriter(filename);
64              _printWriter = new PrintWriter(_fileWriter, true);
65          } catch (IOException ioe) {
66              System.err.println("Could not create output file [" +
67                                 filename + "].");
68              ioe.printStackTrace();
69          }
70      }
71  
72  
73      //------------------------------------------------------------
74      //- Accessors
75  
76      public String getFilename() {return _filename;}
77      protected FileWriter getFileWriter() {return _fileWriter;}
78      protected PrintWriter getPrintWriter() {return _printWriter;}
79  
80  
81  
82      //------------------------------------------------------------
83      //- Settors
84  
85  
86  
87  
88      //------------------------------------------------------------
89      //- Private/Protected Utility Functions
90  
91  
92  
93      //------------------------------------------------------------
94      //- Public Interface Functions
95  
96  
97  
98      //------------------------------------------------------------
99      //- Class Interface Functions
100 
101     public void print(String string) {
102         getPrintWriter().print(string);
103     }
104 
105     public void flush() {
106         getPrintWriter().flush();
107 
108         System.out.println("Results saved to [" + getFilename() + "].");
109     }
110 
111 
112 
113     public void close() {
114         try {
115             getPrintWriter().close();
116             getFileWriter().close();
117         } catch (IOException ioe) {
118             System.err.println("Problem closing output file [" +
119                                getFilename() + "].");
120             ioe.printStackTrace();
121         }
122     }
123 
124 
125 
126     //------------------------------------------------------------
127     //- Inner Classes
128 
129 
130 
131     //------------------------------------------------------------
132     //- Main
133 
134 
135 
136 }