/** * Copyright (c) 2012, Lindsay Bradford and other Contributors. * All rights reserved. * * This program and the accompanying materials are made available * under the terms of the BSD 3-Clause licence which accompanies * this distribution, and is available at * http://opensource.org/licenses/BSD-3-Clause */ package blacksmyth.general.file; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /** * A collection of general utilities for file handling. */ public class FileSystemBridge implements IFileSystemBridge { @Override public void saveTextFile(String fileName, String content) { saveTextFile( new File(fileName), content ); } @Override public void saveTextFile(File fileHandle, String content) { BufferedWriter output = null; try { output = new BufferedWriter( new FileWriter(fileHandle) ); output.write(content); output.close(); } catch (IOException ioe) { System.out.println(ioe); } // System.out.println(fileHandle.getAbsolutePath() + " saved."); } @Override public String loadTextFile(String fileName) { return loadTextFile( new File(fileName) ); } @Override public String loadTextFile(File fileHandle) { BufferedReader input = null; StringBuffer fileContent = new StringBuffer(); String currentLine; try { input = new BufferedReader( new FileReader(fileHandle) ); while ((currentLine = input.readLine()) != null) { fileContent.append(currentLine); } input.close(); } catch (IOException ioe) { System.out.println(ioe); } return fileContent.toString(); } @Override public void saveBinaryFile(String fileName, byte[] content) { saveBinaryFile( new File(fileName), content ); } @Override public void saveBinaryFile(File fileHandle, byte[] content) { DataOutputStream outputStream; try { outputStream = new DataOutputStream(new FileOutputStream(fileHandle)); outputStream.write(content); outputStream.close(); } catch (FileNotFoundException fnfe) { return; } catch (IOException ioe) { return; } } @Override public byte[] loadBinaryFile(String fileName) { return loadBinaryFile( new File(fileName) ); } @Override public byte[] loadBinaryFile(File fileHandle) { byte[] content = new byte[(int)fileHandle.length()]; DataInputStream inputStream; try { inputStream = new DataInputStream(new FileInputStream(fileHandle)); inputStream.readFully(content); inputStream.close(); } catch (FileNotFoundException fnfe){ return null; } catch (IOException ioe) { return null; } return content; } }