package de.tum.in.tumcampusapp.auxiliary;
import com.google.common.base.Charsets;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
* Utility functions to ease the work with files and file contents.
*/
public final class FileUtils {
/**
* Delete all files and folder contained in a folder
*/
@SuppressWarnings("ArgumentParameterMismatch")
// http://errorprone.info/bugpattern/ArgumentParameterMismatch
public static void deleteRecursive(File fileOrDirectory) {
// Check if current item is a dir, then we need to delete all files inside
if (fileOrDirectory.isDirectory()) {
for (File child : fileOrDirectory.listFiles()) {
deleteRecursive(child);
}
}
// Delete the current item
fileOrDirectory.delete();
}
/**
* Convert a stream to a string
*/
public static String convertStreamToString(InputStream is) throws IOException {
StringBuilder sb = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(is, Charsets.UTF_8));
try {
String line;
while ((line = reader.readLine()) != null) {
sb.append(line).append('\n');
}
} finally {
reader.close();
}
return sb.toString();
}
/**
* Read a file directly to a string
* Fails silently
*/
public static String getStringFromFile(String filePath) {
try {
File fl = new File(filePath);
FileInputStream fin = new FileInputStream(fl);
String ret = convertStreamToString(fin);
fin.close();
return ret;
} catch (IOException e) {
Utils.log(e);
return "";
}
}
private FileUtils() {
// FileUtils is a Utility class
}
}