package com.camile._3.impl; import java.io.IOException; import com.camile._3.api.Connection; import com.camile._3.api.ConnectionException; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class ConnectionImpl implements Connection { private FileInputStream fis; private File file; public ConnectionImpl(String source) throws FileNotFoundException { file = new File(getClass().getClassLoader().getResource(source).getFile()); fis = new FileInputStream(file); } @Override public byte[] read(int startPos, int endPos) throws IOException { fis.skip(startPos); byte[] content = new byte[endPos - startPos + 1]; fis.read(content, 0, content.length); return content; } @Override public int getContentLength() { return (int)file.length(); } @Override public void close() { try { fis.close(); } catch (IOException e) { throw new ConnectionException("Fail for connection closed"); } } }