package edu.ucsb.jpregel.system;
import java.io.*;
/**
* Uses a directory path on the local machine.
* @author Charles Munger
*/
public class LocalFileSystem extends FileSystem
{
public LocalFileSystem(String jobDirectoryName)
{
super(jobDirectoryName);
new File(jobDirectoryName + "/in/").mkdirs();
new File(jobDirectoryName + "/out/").mkdirs();
}
@Override
public BufferedReader getFileInputStream() throws FileNotFoundException
{
return read(jobDirectoryName + "/input");
}
@Override
public BufferedReader getWorkerInputFileInputStream(int WorkerNum) throws FileNotFoundException
{
return read(jobDirectoryName + "/in/" + WorkerNum);
}
@Override
public BufferedWriter getWorkerInputFileOutputStream(int WorkerNum)
{
return write(jobDirectoryName + "/in/" + WorkerNum);
}
@Override
public BufferedReader getWorkerOutputFileInputStream(int WorkerNum) throws FileNotFoundException
{
return read(jobDirectoryName + "/out/" + WorkerNum);
}
@Override
public BufferedWriter getWorkerOutputFileOutputStream(int WorkerNum)
{
return write(jobDirectoryName + "/out/" + WorkerNum);
}
@Override
public BufferedWriter getFileOutputStream()
{
return write(jobDirectoryName + "/output");
}
private BufferedReader read(String path) throws FileNotFoundException {
return new BufferedReader(new InputStreamReader(new FileInputStream(path)));
}
private BufferedWriter write(String path) {
try
{
return new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path)));
} catch (FileNotFoundException ex)
{
System.err.println("Couldn't find file " + path + " to write to");
return null;
}
}
}