01: // THIS SOFTWARE IS PROVIDED BY SOFTARIS PTY.LTD. AND OTHER METABOSS
02: // CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
03: // BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
04: // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SOFTARIS PTY.LTD.
05: // OR OTHER METABOSS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
06: // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
07: // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
08: // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
09: // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
10: // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
11: // EVEN IF SOFTARIS PTY.LTD. OR OTHER METABOSS CONTRIBUTORS ARE ADVISED OF THE
12: // POSSIBILITY OF SUCH DAMAGE.
13: //
14: // Copyright 2000-2005 © Softaris Pty.Ltd. All Rights Reserved.
15: package com.metaboss.util;
16:
17: import java.io.File;
18: import java.io.FileInputStream;
19: import java.io.FileNotFoundException;
20: import java.io.FileOutputStream;
21: import java.io.IOException;
22:
23: /** Set of useful utilites to do with files */
24: public class FileUtils {
25: /** Makes sure that the specified file is absent. Deletes existing file if necessary */
26: public static void ensureFileIsAbsent(String pFilePath)
27: throws IOException {
28: File lFile = new File(pFilePath);
29: if (lFile.exists() && lFile.isFile())
30: lFile.delete();
31: }
32:
33: /** Copies contents of the from file to the destination file. Existing target file gets overwritten
34: * source file stays unmodified. */
35: public static void copyFile(String pFromFilePath, String pToFilePath)
36: throws FileNotFoundException, IOException {
37: File lFromFile = new File(pFromFilePath).getAbsoluteFile();
38: if (lFromFile.exists() == false || lFromFile.isFile() == false)
39: throw new FileNotFoundException(pFromFilePath
40: + " does not exists. Unable to copy");
41: File lToFile = new File(pToFilePath).getAbsoluteFile();
42: FileInputStream lFromFileInputStream = null;
43: try {
44: lFromFileInputStream = new FileInputStream(lFromFile);
45: FileOutputStream lToFileOutputStream = null;
46: try {
47: lToFileOutputStream = new FileOutputStream(pToFilePath,
48: false);
49: StreamUtils.copyData(lFromFileInputStream,
50: lToFileOutputStream);
51: lToFileOutputStream.flush();
52: } finally {
53: if (lToFileOutputStream != null)
54: lToFileOutputStream.close();
55: }
56: } finally {
57: if (lFromFileInputStream != null)
58: lFromFileInputStream.close();
59: }
60: }
61:
62: /** Moves contents of the from file to the destination file. Existing target file gets overwritten
63: * source file is deleted after successfull copying. */
64: public static void moveFile(String pFromFilePath, String pToFilePath)
65: throws FileNotFoundException, IOException {
66: copyFile(pFromFilePath, pToFilePath);
67: // We will only get to this spot if copy has been successful
68: File lFromFile = new File(pFromFilePath).getAbsoluteFile();
69: if (!lFromFile.delete())
70: throw new IOException("Unable to delete file. "
71: + lFromFile.getAbsolutePath());
72: }
73: }
|