package com.doesthatevencompile.utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
public class ASCIIFile {
private File file;
private StringBuilder builder;
public ASCIIFile(String path) throws IOException{
file = new File(path);
openFile();
}
public ASCIIFile(File file) throws IOException{
this.file = file;
openFile();
}
public void setNewFileName(String fileName){
file = new File(file.getAbsolutePath(), fileName);
}
public void setNewFilePath(String filePath){
file = new File(filePath, file.getName());
}
private void openFile() throws IOException{
if(!file.exists()) file.createNewFile();
BufferedReader read = new BufferedReader(new FileReader(file));
String line = read.readLine();
builder = new StringBuilder();
while(line != null){
builder.append(line);
builder.append("\n");
line = read.readLine();
}
read.close();
}
public String getContents(){
return builder.toString();
}
public StringBuilder getStringBuilder(){
return builder;
}
public void setStringBuilder(StringBuilder b) throws IOException{
setContents(b.toString());
}
public void setContents(String contents) throws IOException{
FileWriter writer = new FileWriter(file);
writer.write(contents);
writer.flush();
writer.close();
builder = new StringBuilder(contents);
}
public static File[] getAllFilesUnderDir(String fullpath, boolean recursive) {
ArrayList queue = new ArrayList(10);
ArrayList matched = new ArrayList();
File root = new File(fullpath);
File[] files = root.listFiles();
if (files == null || files.length == 0) {
return new File[] {};
}
queue.addAll(Arrays.asList(files));
for (int j = 0; j < queue.size(); j++) {
File child = (File) queue.get(j);
if (child.isDirectory() && recursive) {
files = child.listFiles();
if (files != null) {
queue.addAll(Arrays.asList(files));
}
} else { // child is file
matched.add(child);
}
}
return (matched.size() > 0)?((File[]) matched.toArray(new File[] {})):(new File[] {});
}
}