/*
* Copyright (c) 2014 tabletoptool.com team.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* rptools.com team - initial implementation
* tabletoptool.com team - further development
*/
package com.t3.net;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageWriter;
import org.apache.commons.io.IOUtils;
public class LocalLocation implements Location {
private String localFile;
public LocalLocation() {
// For serialization
}
public LocalLocation(File file) {
this.localFile = file.getAbsolutePath();
}
public File getFile() {
return new File(localFile);
}
@Override
public InputStream getContent() throws IOException {
return new BufferedInputStream(new FileInputStream(getFile()));
}
@Override
public void putContent(InputStream content) throws IOException {
try(BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(getFile()))) {
IOUtils.copy(content, out);
IOUtils.closeQuietly(content);
}
}
@Override
public void putContent(ImageWriter writer, BufferedImage image) {
try(BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(getFile()))) {
writer.setOutput(out);
writer.write(image);
} catch (IOException e) {
e.printStackTrace();
}
}
}