package org.ovirt.engine.core.utils;
import java.io.Closeable;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import org.ovirt.engine.core.compat.CompatException;
public class FileUtil {
public static InputStream findFile(String name) {
try {
InputStream fis = FileUtil.class.getClassLoader().getResourceAsStream(name);
// If this is null, look on the file system
if (fis == null) {
fis = new FileInputStream(name);
}
return fis;
} catch (FileNotFoundException e) {
throw new VdcException(e);
}
}
public static void copyFile(String srcFilePath, String dstFilePath) throws IOException {
InputStream in = new FileInputStream(srcFilePath);
OutputStream out = new FileOutputStream(dstFilePath);
// Transfer bytes from in to out
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
}
public static boolean fileExists(String filePath) {
File file = new File(filePath);
return file.exists();
}
public static void deleteFile(String filePath) {
File file = new File(filePath);
if (fileExists(filePath)) {
file.delete();
}
}
public static void closeQuietly(Closeable... closeables) {
for (Closeable c : closeables) {
try {
c.close();
} catch (Exception e) {
// Ignore
}
}
}
public static String readAllText(final String filename) {
FileInputStream fis = null;
try {
java.io.File file = new java.io.File(filename.toString());
fis = new FileInputStream(file);
int size = fis.available();
byte[] contents = new byte[size];
fis.read(contents);
return new String(contents);
} catch (Exception e) {
throw new CompatException(e);
} finally {
// in the absence of commons io, this workaround is needed to close the file
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
// ignore
}
}
}
}
public static Date getLastWriteTime(Object filename) {
try {
java.io.File file = new java.io.File(filename.toString());
return new Date(file.lastModified());
} catch (Exception e) {
throw new CompatException(e);
}
}
}