org.unitils.util.FileUtils Maven / Gradle / Ivy
package org.unitils.util;
import org.apache.commons.lang.StringUtils;
import org.unitils.core.UnitilsException;
import org.unitils.thirdparty.org.apache.commons.io.IOUtils;
import static org.unitils.thirdparty.org.apache.commons.io.IOUtils.closeQuietly;
import static org.unitils.thirdparty.org.apache.commons.io.IOUtils.write;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
// todo javadoc
public class FileUtils {
public static void copyClassPathResource(String classPathResourceName, String fileSystemDirectoryName) {
InputStream resourceInputStream = null;
OutputStream fileOutputStream = null;
try {
resourceInputStream = FileUtils.class.getResourceAsStream(classPathResourceName);
String fileName = StringUtils.substringAfterLast(classPathResourceName, "/");
File fileSystemDirectory = new File(fileSystemDirectoryName);
fileSystemDirectory.mkdirs();
fileOutputStream = new FileOutputStream(fileSystemDirectoryName + "/" + fileName);
IOUtils.copy(resourceInputStream, fileOutputStream);
} catch (IOException e) {
throw new UnitilsException(e);
} finally {
closeQuietly(resourceInputStream);
closeQuietly(fileOutputStream);
}
}
/**
* Creates an URL that points to the given file.
*
* @param file The file, not null
* @return The URL to the file, not null
*/
public static URL getUrl(File file) {
try {
return file.toURI().toURL();
} catch (MalformedURLException e) {
throw new UnitilsException("Unable to create URL for file " + file.getName(), e);
}
}
/**
* Writes the given string to the given file
*
* @param file the file to write, not null
* @param string the string, not null
*/
public static void writeStringToFile(File file, String string) throws IOException {
OutputStream out = null;
try {
out = new FileOutputStream(file);
write(string, out, null);
} finally {
closeQuietly(out);
}
}
}