📄 readonlyaccessinputstream.java.svn-base
字号:
/*
* Copyright (c) 2007 innoSysTec (R) GmbH, Germany. All rights reserved.
* Original author: Edmund Wagner
* Creation date: 26.06.2007
*
* Source: $HeadURL$
* Last changed: $LastChangedDate$
*
* the unrar licence applies to all junrar source and binary distributions
* you are not allowed to use this source to re-create the RAR compression algorithm
*
* Here some html entities which can be used for escaping javadoc tags:
* "&": "&" or "&"
* "<": "<" or "<"
* ">": ">" or ">"
* "@": "@"
*/
package de.innosystec.unrar.io;
import java.io.IOException;
import java.io.InputStream;
/**
* DOCUMENT ME
*
* @author $LastChangedBy$
* @version $LastChangedRevision$
*/
public class ReadOnlyAccessInputStream extends InputStream
{
private IReadOnlyAccess file;
private long curPos;
private long startPos;
private long endPos;
public ReadOnlyAccessInputStream(IReadOnlyAccess file,long startPos, long endPos)
{
super();
this.file = file;
this.startPos = startPos;
curPos = startPos;
this.endPos = endPos;
file.setPosition(curPos);
}
@Override
public int read() throws IOException
{
byte[] b = new byte[1];
if(file.readBytes(b, 1)==-1){
throw new IOException("problem reading from stream source");
}
return b[0];
}
@Override
public int read(byte[] b, int off, int len) throws IOException
{
int toread = Math.min(b.length-off, len-off);
byte[] tmp = new byte[toread];
int read = file.readBytes(tmp, toread);
if(read!=-1){
System.arraycopy(tmp, 0, b, off, read);
}
return read;
}
@Override
public int read(byte[] b) throws IOException
{
int read = file.readBytes(b, b.length);
return read;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -