package com.fourspaces.featherdb.utils;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileUtils {
public static void writeToFile(File file, String str) throws IOException {
writeToFile(file,str,false);
}
public static void writeToFile(File file, String str, boolean append) throws IOException {
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(file,append));
writer.write(str);
} finally {
if (writer!=null) {
try {
writer.close();
} catch (Exception e) {
}
}
}
}
public static String readFileAsString(File file) throws IOException {
final StringBuilder buffer = new StringBuilder("");
readFileByLine(file, new LineCallback() {
public void process(String line) {
buffer.append(line);
buffer.append("\n");
}});
return buffer.toString();
}
public static void readFileByLine(File file, LineCallback callback) throws IOException {
String line = null;
BufferedReader reader=null;
try {
reader = new BufferedReader(new FileReader(file));
while ((line=reader.readLine())!=null) {
callback.process(line);
}
} finally {
if (reader!=null) {
try {
reader.close();
} catch (IOException e) {
}
}
}
}
public static boolean isFileGZIP(File file) {
boolean gzip = false;
FileInputStream fis =null;
try {
byte[] gzipbuf = new byte[2];
fis = new FileInputStream(file);
fis.read(gzipbuf);
if (gzipbuf[0]==0x1f && gzipbuf[1]==0xffffff8b) { // gzip file header (magic is 0x8b1f)
gzip=true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fis!=null) {
try { fis.close(); } catch (Exception e) {}
}
}
return gzip;
}
}